我很困惑如何初始化JS模塊實現中的本地對象。我有一個局部變量(一個對象),我嘗試訪問我返回的對象字面值;但是,當我嘗試向該對象添加新屬性時,它說它是未定義的。但如果我不這樣做,我可以輕鬆地將本地對象的值設置爲其他任何值。JS模塊模式:如何初始化本地對象
這裏是我的代碼:
var myModule = (function(){
var myLocalObj = {}; // I always get a warning in the IDE that this var is never read
return{
setObject:function(coll){
this.myLocalObj = coll; // this works just fine
this.myLocalObj.newProp = coll.prop // fails because 'myLocalObj' is undefined.
},
getObject:function(coll){
return this.myLocalObj;
}
};
})();
myModule.setObject(obj); // this is what I call after an ajax call is complete
您的IDE是正確的。請不要混淆變量和屬性。 – Bergi
看來,這正是我正在做的。所以如果我想設置一個本地屬性,然後再獲取它,那麼最好的方法是什麼? – fumeng
你可以使用'return {myPropObj:{},setObject:function(){... this.myPropObj ...}};'。當然,屬性永遠不是真正的「本地」屬性,任何可以訪問該對象的人都可以訪問它們。 – Bergi