2013-04-30 66 views
0

我有一个已经实例化多次的类,我想为它们全部更改某个实例变量。我将如何去做这个使用dat.js?使用dat.gui在多个实例中更改变量

e.g

function MyClass(){ 
    this.x = 1; 
} 
var arr = []; 

for(var i =0; i< 10; i++){ 
    arr.push(new MyClass()); 
} 

我如何可以改变的MyClass的所有实例变量x。

回答

1

我可以考虑改变实例变量而不对MyClass进行任何更改的唯一方法就是遍历arr

或者,如果你真的想要所有的实例共享一个共同的属性,也许你想要做的就是在经典编程中使用类似于静态变量的东西。这些可以通过利用这样一个事实来实现,即函数实际上只是JavaScript中的对象,所以您可以将一个属性添加到函数构造函数中:MyClass.x = 1;。当您想要更改所有实例的值时,只需更改MyClass.x = 2;即可立即更新它们。此技术会改变您访问变量的方式,因此您不需要this.x,而需要通过MyClass.x来引用它。