Skip to content

Latest commit

 

History

History
25 lines (20 loc) · 548 Bytes

treat-prototypes-as-an-implementation-detail.md

File metadata and controls

25 lines (20 loc) · 548 Bytes

将原形视为实现的细节

function A(attr1) {
    this.attr1 = attr1;
}
A.prototype.method1 = function(){};

function B(attr1, attr2) {
    A.call(this, attr1);
    this.attr2 = attr2;
}
B.prototype = Object.create(A.prototype);
B.prototype.method2 = function(){};

console.log(new B('attr1', 'attr2'));

源码


谨记

  • 对象是接口,原型是实现。
  • 避免检查你无法控制的对象的原型结构。
  • 避免检查实现在你无法控制的对象内部的属性。