#闭包
局部变量的生命周期:作用域的开始到结束,结束后,被销毁,不能使用
闭包就是讲局部变量进化成私有变量的环境,叫闭包
这个环境一般是作用域的嵌套
讲原本要删除的变量,不删除,继续使用
垃圾回收机制:放在临时空间,可以二次或继续使用
##闭包的引用:
1.循环的事件,获取计数器的值
2.定时器的回调函数传参
#继承
某个对象使用了另一个对象具有,自身不具有的功能,叫继承
是面向对象的三大特点:
封装,继承,多态
构造函数
prototype显示原型对象
constructor
__proto__隐式原型对象
构造函数继承:
对象在寻找方法时,自身没有,会向父级找,一直到顶层对象(window),多层存在,就近原则
对象继承了构造函数的this;同事也即形成了原型属性
call,apply,bind
1.改变this指向继承:只能继承this、不能继承原型的属性方法
bind(this,参数)();
2.原型对象继承:(注意深浅拷贝,浅拷贝会影响原数据,深拷贝需要遍历拷贝)
for(var i = 0; i < a.prototype.length; i++) {
b.prototype[i] = a.prototype[i]
}
3.原型链对象继承:可继承this,原型的属性方法,但是不方便传参
将需要继承的构造函数的原型指向被继承的实例
4.混合继承:1+2;
5:ES6de class继承:混合继承
class Child extends Parent{
constructor(n){
super(n);
}
}
###原型与实例的检测
Parent.isPrototypeOf(new Parent)
(new Parent) instanceof Parent