gpt4 book ai didi

javascript - 阐明 JavaScript 原型(prototype)

转载 作者:行者123 更新时间:2023-11-30 05:46:42 28 4
gpt4 key购买 nike

假设我有一个子函数:

function Child() {}

并且有一个父函数:

function Parent() {}

然后我将 Child 的原型(prototype)设置为 Parent 的新实例:

Child.prototype = new Parent()

每次我创建新的 Child 实例时都会感到困惑

var c = new Child()

Parent 会被再次创建吗?

最佳答案

它只创建一次。每次调用 new Child() 时,都会创建一个新的 Child 对象,并将相同的 Parent 对象设置为其原型(prototype)。您可以通过执行以下操作 ( jsfiddle ) 来确认这一点:

function Child() {}
function Parent() {
this.aParentProp = { name : "Parent" };
}
Child.prototype = new Parent();
var c1 = new Child();
var c2 = new Child();

if(Object.getPrototypeOf(c1) === Object.getPrototypeOf(c2)) {
alert("same prototype!");
}

if(c1.aParentProp === c2.aParentProp) {
alert("same property!");
}

c1c2 都有相同的原型(prototype) 使用Object.getPrototypeOf .此外,c1c2aParentProp 都指向同一个对象实例,表明 c1c2 为其 prototype 共享相同的 Parent 对象。

关于javascript - 阐明 JavaScript 原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17518403/

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