gpt4 book ai didi

javascript - "the prototype belongs to the class not the instance"在 javascript 中是什么意思?

转载 作者:行者123 更新时间:2023-11-29 18:32:47 25 4
gpt4 key购买 nike

我问的问题:

Why cant I declare a constructor instantiate an object and then access the prototype?

你可以看到我已经标记了答案。我理解他的回答,但我对他的意思有点困惑:

The prototype belongs to the class, not the instance:

这是否意味着 javascript 在这个例子中有一个类?我以为 javascript 是无类的?它只有函数构造函数......函数构造函数在什么时候成为一个类?是当您使用 .prototype 访问器向它添加其他成员时吗?

最佳答案

实际上 class 是一个 OOP 术语,而不是真正的 javascript。意思是原型(prototype)属于constructor。所以在

function MyConstructor(prop){
this.foo = prop || 'foo';
}
MyConstructor.prototype.bar = 'allways bar';
var mc1 = new MyConstructor('I am mc1'),
mc2 = new MyConstructor('I am mc2');

alert(mc1.bar) ; //=> allways bar
alert(mc2.bar) ; //=> allways bar
alert(mc1.foo) ; //=> I am mc1
alert(mc2.foo) ; //=> I am mc2

bar 属于构造函数(MyConstructor)原型(prototype)。对于每个实例,它将始终是“始终禁止”。 foo 是一个实例属性(具有默认值“foo”),可以为每个实例分配不同的值。

关于javascript - "the prototype belongs to the class not the instance"在 javascript 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150684/

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