一丶闭包
是由于作用域嵌套,让全局变量和局部的引用类型数据保持了引用关系,导致只想空间不销毁的场景
(局部的引用类型数据赋值给了全局变量了,全局变量要使用,就必须保持局部的引用类型数据必须存在,局部的数据必须存在,局部代码执行的执行空间就必须存在,所以多次调用,其实在操作同一个局部变量)
好处:
1.全局可以间接的操作到局部变量
2.保护了变量的私有性,不污染全局了
3.延长了变量的生命周期
缺点:
滥用闭包容易造成内存的泄露/溢出
二丶防抖
在有些事件触发的特别频繁的时候,但我们只用其中最后一次或者开始的第一次(只能执行一次),使用防抖
封装通用的防抖函数
二丶节流
节流:事件在频繁触发时,不是每次触发都会执行函数,让函数有节制的执行。也就是让函数在一个时间段内虽然触发了多次,但是函数只执行了一次。
三丶函数柯里化
如果一个函数调用传递了多个实参,函数定义就需要多个形参来接收。函数柯里化,就是让函数不接收全部的实参,只接收部分参数,然后在函数内再次返回一个小函数,来接收剩余部分的参数,让函数整个运行流程,可以分多个步骤执行
四丶继承
含义: 一个对象希望能用到另一个对象的属性和方法,继承零一对象
原型继承 : 我们可以通过修改对象的原型,让对象能拥有其他对象的属性和方法
弊端: 弊端:继承来的属性在原型上,不在自己上,当给自己添加同名属性时,就无法使用原型的属性了。
借用函数继承 : 通过借用函数,可以在子构造函数中,执行父构造函数中的代码,将父构造函数中的属性添加在子构造函数中。
弊端:借用函数继承,只能继承属性,无法继承原型中的方法
混合继承:
五丶es6中的类
es6提供了关键字class 定义类 类: 抽象的对象
作用: 为了定义对象 -- 将他当做构造函数来使用
语法: class 类{}
六丶es6中的继承
es6中类的继承语法:class 子类 extends 父类{} - 一边定义子类,一边继承父类