js部分


闭包:一个函数内嵌套一个函数

是为了延长变量的声明周期,它不会被js的垃圾回收机制处理,永远存在于内存中

创建一片私有作用域

IIFE:自执行函数,()()

作用域和作用域链:作用域为了隔离变量 作用域链式在作用域中不存在该变量,向上一层 一层查找,直至全局,采用就近原则

原型和原型链

原型 Prototype 是函数特有的

原型链是_proto_ 在chrome中[[prototype]]

原型链的规则是从当前实例查找找到就返回,找不到 就向上一层一层查找直至null,若null也找不到,就报错

深拷贝浅拷贝:深拷贝就是在开辟一块新的内存地址,用于存放被复制的对象

       浅拷贝是新对象对就对象内存地址的引用,他们共享同一块内存,新对象改变也会影响旧对象

继承的方法:构造函数式继承:在子类中改变父类的this指向,并传递参数,缺点是只能传递父类的属性

类式继承: 子类的原型指向父类的实例,缺点是多了一次父类的实例化,多了无用参数,子类需要添加构造函数,为子类添加构造函数

组合式继承就是 构造函数式继承+类式继承

寄生式继承,定义寄生函数接收子类父类 在其内部定义寄生类,将寄生类的原型指向父类的原型,将子类的原型指向寄生类的实例,为子类添加构造函数constructor