2013-04-30 23 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來引用它。