闭包的概念:作用域嵌套导致执行空间不销毁
闭包的表现形式分为三种:
1.大函数中返回小函数
2.小函数使用大函数中的变量
3.全局变量跟局部的小函数保持引用关系
闭包的好处:
1.保护了变量的私有性
2.延长了变量的生命周期
3.间接的让全局可以操作局部变量
缺点: 滥用闭包容易造成内存泄漏/溢出
使用场景:
1.循环中执行异步代码/绑定事件
2.防抖 触发很多次的事件,我们只要他执行最后一次或者只执行一次
3.节流 触发很多次的事件,让事件触发的不那么频繁
4.函数柯里化 拆分形参 :1.function(a,b){},2.function(a){return function(b){}}
继承
概念:让一个对象能拥有另一个对象的属性和方法
实现方式:
1.原型继承: 将子对象的原型改成父对象
2.借用继承: 在子构造函数中通过借用函数执行父构造函数
3.混合继承: 原型继承+借用继承
4.es6的继承 class子类 extends父类{} 注意:1.子类中有constructor,在constructor里面的最前面必须调用super() 2.调用super就相当于在调用父类的constructor
es6的类 class 类名 {} 构造函数的马甲和构造函数一样
继承