我试图在JavaScript .This关于MDN的文章中学习继承,解释原型链是如何工作的。
let f = function () {
this.a = 1;
this.b = 2;
}
let o = new f(); // {a: 1, b: 2}
f.prototype.b = 3;
f.prototype.c = 4; 有评论说
// do not set the prototype f.prototype = {b:3,c:4}; this will break the prototype chain这条链子怎么会断?我的猜测是,由于我们正在覆盖构造函数的原型对象,所以所有其他向上链的引用都丢失了,所以我们可以使用Object.create(someobject)将对象设置为f.prototype,这不会破坏链。
发布于 2020-12-07 10:01:28
f.prototype = Object.create(someobject);对象的性质和方法在f.protoype对象中是可用的。因此,f的所有实例都具有这些方法和属性。
,为什么它不会断链?
Object.create()根据提供的(原型)参数直接构造一个对象。该参数本身(可能)具有通过其[原型]属性提供的所有引用。
https://stackoverflow.com/questions/65179320
复制相似问题