gpt4 book ai didi

javascript - 什么是 prototype.constructor 及其在原型(prototype)链中的作用 - Javascript

转载 作者:行者123 更新时间:2023-11-29 21:45:23 24 4
gpt4 key购买 nike

<分区>

当我在 MDN 中阅读有关原型(prototype)继承的内容时, 我找到了这段代码。

function B(a, b){ }
B.prototype = Object.create(A.prototype, {});
B.prototype.constructor = B;
var b = new B();

为简单起见,我删除了函数的内部内容。这里 B.prototype.constructor 被分配给 B,一旦它被创建。为什么这样做以及 prototype.constructor 在原型(prototype)链中的作用是什么。我找到了这个 SO问题和一个答案是

It's a good practice to reset a constructor after the assignment.

我想对此得到一个很好的解释,以及原型(prototype)链中对此有何影响。在 MDN Object.prototype.constructor 解释为

Returns a reference to the Object function that created the instance's prototype.

我试过以下

function A(name) {
this.name = name
}
function B() {
this.getName = function(){
console.log('hello');
}
}
var b = new B();

这里 b.constructorfunction A(name) 并且在 b.__proto__.constructor 中还有另一个可用的构造函数,两者都是相同的。这两者有什么区别。现在,当我执行以下 B.prototype.constructor == B 时,b.constructorfunction B()

现在我已经从 b

创建了一个新对象
var c = Object.create(b)

那么这将如何影响原型(prototype)链。

非常感谢任何帮助。提前致谢。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com