gpt4 book ai didi

javascript原型(prototype)逻辑

转载 作者:行者123 更新时间:2023-11-30 10:33:37 24 4
gpt4 key购买 nike

我正在阅读 professional javascript for web developers , 他们提出以下内容:

此代码有效:

var friend = new Person();

Person.prototype.sayHi = function(){
alert("hi");
};

friend.sayHi();

但这段代码不会:

function Person(){
}

var friend = new Person();

Person.prototype= {
constructor: Person,
name: "Nicholas",
age: 29,
job: "Software Engineer",
sayName: function () {
alert(this.name);
}
};

friend.sayName();

我明白了,在第二个示例中,原型(prototype)是在实例化 friend 变量之后定义的,但在那种情况下,为什么第一个示例可以工作?

最佳答案

在第一个片段中,您要添加到已提供给实例的现有原型(prototype)。在第二个中,您正在为 Person 创建一个新的原型(prototype),它不同于已经给 friend 的原型(prototype)对象。

如果您要向原型(prototype)添加新函数,您可以在该函数被调用之前的任何时间添加。在实例化新实例之前,需要将新对象分配给构造函数的原型(prototype)。

关于javascript原型(prototype)逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15328488/

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