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

标签 javascript jquery

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

  1. 使用自调用匿名函数 ( IIFE ) .
  2. 使用面向对象的方法,我们创建一个对象来保存我们的变量,并且该对象将用于访问该变量而不影响全局命名空间。

现在我的问题是,哪一个更专业,也是防止污染全局命名空间的更好方法。我认为使用自关闭匿名函数更好,因为它甚至不添加单个名称。但在面向对象的方法中,仅添加对象名称已添加到全局命名空间。
答案表明两者是相同的,但一切都有优点和缺点,所以我应该优先使用哪一个。

最佳答案

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

(function () {

    function Greeter(text) {

        this.greetPhrase = text;

    }

    Greeter.prototype = {

        greet : function () {

            alert(this.greetPhrase);

        }

    };

    var greeterInstance = new Greeter('Hello');

    greeterInstance.greet();

})();

关于javascript - 自调用匿名函数与面向对象的方法来防止影响全局命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43225601/

相关文章:

javascript - 更改事件在 Bootstrap 多重选择字段中不起作用

javascript - 在鼠标输入时显示不同的 div

javascript - 输入搜索在 Edge、IE 或 Firefox 中不起作用

javascript - 使用 jquery ajax 的自动建议总是在 1 次击键后产生建议

JQuery 循环遍历每个表行

jquery - 高级 JQuery 验证 : Avoiding Validations on Certain Conditions

javascript - 我需要一个 div 在 10 秒后激活

javascript - Ember.js 具有角色和状态的模型架构

javascript - 如何在 PHP 中使用 Javascript?

javascript - 如何提取属性中值的一部分