js部分
闭包:一个函数内嵌套一个函数
是为了延长变量的声明周期,它不会被js的垃圾回收机制处理,永远存在于内存中
创建一片私有作用域
IIFE:自执行函数,()()
作用域和作用域链:作用域为了隔离变量 作用域链式在作用域中不存在该变量,向上一层 一层查找,直至全局,采用就近原则
原型和原型链
原型 Prototype 是函数特有的
原型链是_proto_ 在chrome中[[prototype]]
原型链的规则是从当前实例查找找到就返回,找不到 就向上一层一层查找直至null,若null也找不到,就报错
深拷贝浅拷贝:深拷贝就是在开辟一块新的内存地址,用于存放被复制的对象
浅拷贝是新对象对就对象内存地址的引用,他们共享同一块内存,新对象改变也会影响旧对象
继承的方法:构造函数式继承:在子类中改变父类的this指向,并传递参数,缺点是只能传递父类的属性
类式继承: 子类的原型指向父类的实例,缺点是多了一次父类的实例化,多了无用参数,子类需要添加构造函数,为子类添加构造函数
组合式继承就是 构造函数式继承+类式继承
寄生式继承,定义寄生函数接收子类父类 在其内部定义寄生类,将寄生类的原型指向父类的原型,将子类的原型指向寄生类的实例,为子类添加构造函数constructor