我有一个已多次实例化的类,我想为所有这些更改某个实例变量。我将如何使用dat.js进行此操作?
例如
function MyClass(){
this.x = 1;
}
var arr = [];
for(var i =0; i< 10; i++){
arr.push(new MyClass());
}
如何为MyClass的所有实例更改x变量。
答案 0 :(得分:1)
我可以想到改变实例变量而不对MyClass
进行任何更改的唯一方法是迭代arr
。
或者,如果你真的想要所有实例共享一个公共属性,那么你想要做的就是在经典编程中使用类似于静态变量的东西。这些可以通过利用函数实际上只是JavaScript中的对象这一事实来实现,因此您可以向函数构造函数添加属性:MyClass.x = 1;
。当您想要更改所有实例时#39; x
值,您只需更改MyClass.x = 2;
即可立即更新它们。此技术会改变您访问变量的方式,因此您需要this.x
而不是MyClass.x
,而不是{{1}}。