gpt4 book ai didi

javascript - 在 JavaScript 中定义公共(public)字段的首选方式 : on prototype or constructor?

转载 作者:行者123 更新时间:2023-12-03 01:45:19 25 4
gpt4 key购买 nike

在 Javascript 中为类的所有实例定义公共(public)字段的首选方法是什么?通过原型(prototype)还是构造函数?

function A() {
}

A.prototype.names = ['1', '2', '3']

或者

A.names = ['1', '2', '3']

我知道这两种方式需要不同的访问模式,例如 this.namesA.names ,分别。

最佳答案

对于非原始类型,大多数时候您不想在原型(prototype)中设置它们。 prototype 基本版本的“问题”是所有实例都共享同一个对象。

function A() {
}

A.prototype.names = ['1', '2', '3']

var a1 = new A()
var a2 = new A()

a1.names.push(4);

console.log(a1.names);
console.log(a2.names);

只有当您确实想在所有实例之间共享相同的对象时,您才会使用基于原型(prototype)的解决方案。但即便如此,我也会使用 static like 条目并将其分配给构造函数:

A.names = ['1', '2', '3']

因为这样就很清楚它是一个共享对象,对所有人来说都是一样的。

关于javascript - 在 JavaScript 中定义公共(public)字段的首选方式 : on prototype or constructor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50665364/

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