2017-04-05 40 views
0

我正在學習jquery,在我的學習過程中我學會了如何不污染全局命名空間。
我學會了兩種方法:使用自調用匿名函數 (IIFE)自我調用匿名函數vs面向對象的方法來防止影響全局命名空間

  1. 使用面向對象的方法,在該方法中,我們創建一個對象來保存我們的變量,而對象將用於訪問該變量而不影響全局名稱空間。

現在我的問題是,哪一個更專業,更好的辦法來防止污染全球namespace.I認爲使用自動關閉匿名函數是更好,因爲它不會在面向對象的增加甚至是單個name.But方法只將對象名稱添加到全局名稱空間。
答案表明兩者都是相同的,但一切都有優點和缺點,所以我應該優先使用。

+2

_self關閉匿名FUNCTION_也許你的意思[IIFE(https://en.wikipedia.org/wiki/Immediately-invoked_function_expression)? – hindmost

回答

0

結合這兩種做法沒有限制。你可以建立在這樣的方式應用:

(function() { 

    function Greeter(text) { 

     this.greetPhrase = text; 

    } 

    Greeter.prototype = { 

     greet : function() { 

      alert(this.greetPhrase); 

     } 

    }; 

    var greeterInstance = new Greeter('Hello'); 

    greeterInstance.greet(); 

})();