0
我試圖實現一個愚蠢的代碼,一個基礎對象,它有一個'私人'成員(閉包變量),並基於該對象的兩個對象。看起來這兩個對象操縱相同的閉包變量關閉對象之間共享變量
Obj = (function(){
var count = 0;
function getCount(){
return count;
}
function setCount(c) {
count = c;
}
return {
getCount : getCount,
setCount : setCount
}
}());
obj1 = Object.create(Obj);
obj2 = Object.create(Obj);
obj1.setCount(10);
obj2.getCount(); // 10? that's.. not so good
所以,我原來的Obj代碼只執行一次,這有點解釋了這一點。
我的問題:
是否有保持「私人」變量而創建多個對象關閉包的方法嗎?我找不到任何聰明的解決方法,我很樂意避免將該變量設置爲公開訪問。
如果你想擁有的每個對象的「私人範圍」,你需要在實例爲 – dandavis
執行一個功能,你必須創建一組新你創建一個對象,而不是一次。 –
嘿,正如我所說我很確定我明白爲什麼發生這種情況,想知道是否有解決方法:) – Patrick