js对象,函数

proto每个对象都有,prototype函数才会有
每个prototype中都有一个默认属性constructor,constructor指向原型函数

var a=new Object()
a.name=“a”   对象.属性名  正常方法
a.age=18
console. log(a.age)
a[“123”]=456   对象的属性如果特殊的话需要这样标注    对象[“属性名”]
console. log(a[“123”])    输出456
var n=“123”
[]可以传递变量
console.log(a[n])     输出456
delete obj.name   删除a的name属性
console.log(“name”,a)  检查a对象内是否有name属性有就返回true

var obj={         使用对象字面量创建一个对象
name=“a”,
age=“18”
};


原型对象
function Person(){
}
Person.prototype.name=“张三”
var per=new Person()
alert(per.name)        //张三

   

函数
函数声明

    ●声明一个函数
function a(){

}

    ●声明一个带参数的函数
function a(b,c)
{
document.write(a+b)
}
a(7,8)       //输出15    
var obj={      
……
}
a(obj)  //实参可以是一个对象也可以是一个函数

    ●声明一个返回类型的函数
function a(b,c)
{
var c=a+b
return c
}
var d=a(7,8)    //定义一个变量接收返回值
document.write(d)    输出15


    ●声明一个匿名函数
var a=function(){

}

立即执行函数
(function(){
……
})()


    ●构造函数
function Person(name){      //构造函数是类
this.name=name; this以构造函数的形式出现时,this就是这个对象(per)
}
ver per=new Person(“张三”)     //per是实例
console.log(per.name)     //张三
console.log(per instanceof Person)检查per对象是否为Person类的实例,是返回true,不是返回false


    ●闭包
 作用:让函数外部可以读取到函数内部的数据
function fn1(){
var a=1
   var fn2=function(){
   a++
   console.log(a)
   }
return fn2
}
var f=fn1()
f()   //2
f()  //3
f=null  //释放函数的内存,外部无法在读取到a
外部函数执行了几次,内部函数就创建几次,并延长局部变量的生命周期


递归函数
递归函数使用不慎容易造成死循环,建议少用
function add(n){
     if(n==1){
       return1
    }
return n+add(n-1)
}
var sum=add(100)   //计算从1累加到100的和

posted @ 2021-03-24 16:33  终末s  阅读(37)  评论(0)    收藏  举报