20200828岳浩天

知识:

闭包

var add = (function () {
var counter = 0;

return function () {return counter += 1;}
})();
add(); // counter=1;
add(); // counter=2;
add(); // counter=3;

闭包缺点:

占用更多内存

容易造成内存泄漏

​ show[0]=null 释放闭包

对象

内置对象的api:Math Date Number

Math.ceil(num)向上取整

Math.floor(num)向下取整

Math.round(num)四舍五入取整

自定义对象

使用内置构造函数创建对象

// 创建空对象
var obj=new Object()
// 添加属性
obj.name="lileilei";
obj.sex="男";

使用自定义构造函数创建对象

function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;
this.sayName=function(){
alert(this.name)
}
}

var person1=new Person("lili",24,"teacher")

var person2=new Person("leilei",20,"student")

执行构造函数中的代码(为这个新对象添加属性)

person1.sayName()

person2.sayName()

优点:创建自定义的构造函数意味着将来可以将它的实例标识为一种特定的类型

缺点:每个方法都要在每个实例上重新创建一遍。person1,person2都有一个名为sayName()的方法,但这两个方法不是同一个Function的实例。因为ECMAScript中的函数是对象,所以每定义一个函数都是实例化了一个对象

评论