1.JS中的继承是靠原型链(类似于面向对象设计语言中的子类、父类的关系)实现的。
2.函数的签名(可简单认为是函数名和一个参数列表组成(方法的参数的顺序和类型))可以唯一确定这个函数。通过函数的签名,我们可以创建接口、实现函数的重载等等,而JS中不审查入参,也就是JS没有函数签名,也就是JS不能实现重载,也不能进行接口继承。
3.JS中函数是一段具有名字和输入参数的代码,而将函数和对象结合在一起称为对象的函数,函数就变成了方法。
4.为什么有函数签名就能实现函数重载:调用函数时,首先会创建一个函数签名(函数的名称+参数类型),然后去函数签名集里面去匹配函数名,调用函数。函数重载是一组具有相同名字,不同参数列表的函数或者方法。相当于JS没有函数签名,就根本没法建立函数签字集,那调用函数重载里面的不同函数时,根本没有区别开来,有也就是没法实现函数重载。
5.原型链让一个引用类型继承另一个引用类型的属性和方法。
6.实现原型链的方法就是让原型对象等于一个另一个原型的实例,这样这个原型对象就有了指向另一个原型对象的指针(在实例里面)。
7. 继承的constructor指向被继承的构造函数。
8.求数组最大值时,不能直接math.max(数组) ,要不用(...数组)扩展运算符来解析数组,要不用apply(null,数组)。