我正在学习 Jquery,在学习过程中我学会了如何不污染全局命名空间。
我学到了两种方法:
- 使用自调用匿名函数 ( IIFE ) .
- 使用面向对象的方法,我们创建一个对象来保存我们的变量,并且该对象将用于访问该变量而不影响全局命名空间。
现在我的问题是,哪一个更专业,也是防止污染全局命名空间的更好方法。我认为使用自关闭匿名函数更好,因为它甚至不添加单个名称。但在面向对象的方法中,仅添加对象名称已添加到全局命名空间。
答案表明两者是相同的,但一切都有优点和缺点,所以我应该优先使用哪一个。
最佳答案
结合这两种做法没有任何限制。您可以像这样构建应用程序:
(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/