Prototype 原型
概念
JS 通过原型链来实现继承,而在集成时,不会复制父类属性,还是在子类和父类之间创建一个关联。

原型链
当我们访问一个属性的时候,如果没有,就会顺着 __proto__ 原型链一路向上找。如果找到 Object.prototype 还是没有找到,就返回 undefined
prototype proto
函数都有
prototype对象都有
__proto__所用函数都由 Function 创建而来,所以它们的 proto 都是
Function.prototypeFunction.protype = Function.proto
解决原型链污染问题
我们可以覆盖掉对象原型上的属性,如下:
解决方法
Object.create(null),将对象的原型设置为 null
Object.freeze(obj),使对象的属性不可修改
ES5 继承方式
原型链继承
将子类的原型指向父类的实例
盗用构造函数
子类中使用 call 方法,将 this 绑定到父类上
组合继承
原型链 + 盗用
寄生组合继承
Last updated