Js相关:
1、js继承:
构造函数继承
call&apply继承
原型继承(prototype继承)
2、Js原型链
JS中每个对象都有一个_proto_属性指向这个对象构造函数的prototype对象,这个prototype对象也有一个_proto_属性,这样形成的一个链条称之为原型链。
3、闭包
闭包就是能够读取其他函数内部变量的函数,由于在JS中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函外部连接起来的一座桥梁。
缺点:内存泄漏。解决办法:在退出函数之前,将不使用的局部变量全部删除。
4、call、apply、bind
三者都是为了可以改变函数运行时的上下文,即改变this指向问题。
call和apply的区别是:apply的第二个参数是一个数组和类数组,而cal的第二个参数接收的是一个多个参数列表。
apply可以实现继承,而call()是apply()的一颗语法糖。
bind与call和apply的区别是:call()和apply()在调用函数之后会立即执行,而bind()方法调用并改变函数运行上下文后返回一个新的函数,供我们需要时再调用。