我有一個關於javascript中的自我調用函數的問題。javascript新的自我調用函數
我在做什麼是類似於以下
myNamespace = {}; //namespace for holding any objects/functions
//helpModule as an example
myNamespace.HelpModule = new (function(){
this.abc = '123';
//lots of other code in here...
})();
東西現在我能夠訪問myNamespace.HelpModule的性質,像這樣:
alert(myNamespace.HelpModule.abc);
但對於初學者的JSLint沒有按」 t喜歡說「奇怪的構造,刪除'新'。」, 而這page指出,你不應該使用函數構造函數,雖然在這種情況下,我不知道它是否使用函數構造函數,因爲它的自調用函數?
無論如何,它似乎工作正常,我使用它的原因是有「這個」範圍的功能,而不是全局對象(窗口)。我可以將其定義爲對象文本或做類似的事情,以
myNamespace.HelpModule = (function(){
var obj = {};
obj.abc = '123';
return obj;
}();
但是這些都似乎是「優雅」給我。
我想知道這是不好的形式/實踐?
定義模塊的冷靜的方式,從未見過! – 2012-10-11 16:20:43