自我调用匿名函数与面向对象的方法,以防止影响全局命名空间

时间:2017-04-05 08:18:11

标签: javascript jquery

我正在学习Jquery,在学习过程中,我学会了如何不污染全局命名空间 我已经学会了两种方法:

  1. 使用自动调用匿名函数 ( IIFE )
  2. 使用面向对象的方法,我们创建一个将保存变量和对象的对象,用于访问该变量而不影响全局命名空间。
  3. 现在我的问题是,哪一个更专业,更好的方法来防止污染全局命名空间。我认为使用自闭合匿名函数更好,因为它不添加甚至一个名称。但在面向对象的方法只有对象名称被添加到全局命名空间 答案表明两者都是相同的,但一切都有利弊,我应该优先使用。

1 个答案:

答案 0 :(得分:1)

将这两种做法结合起来没有任何限制。您可以像这样构建应用程序:

(function () {

    function Greeter(text) {

        this.greetPhrase = text;

    }

    Greeter.prototype = {

        greet : function () {

            alert(this.greetPhrase);

        }

    };

    var greeterInstance = new Greeter('Hello');

    greeterInstance.greet();

})();