法一:
B.prototype = new A();
B.prototype.constructor = B;
相当于
B: { prototype: { constructor: B }, __proto__: { __proto__: A.prototype: { __proto__: ... } } }
法二:
B.prototype = Object.create(A.prototype);
Object.create(o)
相当于内部创建一个新的函数,然后将这个函数的prototype置为o,然后返回由这个函数创建的实例
那么整个过程相当于
function F() {}
F.prototype = A.prototype;
B.prototype = new F();
B: { prototype: { constructor: B }, __proto__: { __proto__: F.prototype[A.prototype] : { __proto__: ... } } }
网友评论