Stoyan Stefanov 在 Javascript Patterns 中说道:“你需要一个即时函数来将所有代码包装在其本地作用域中,并且不会将任何变量泄漏到全局作用域”第 70 页。
这是他的例子
(function() {
var days = ['Sun','Mon'];
// ...
// ...
alert(msg);
}());
但肯定因为 days 被定义为 var,所以它只是函数作用域?立即函数的唯一好处是立即调用该函数。没有范围优势。正确吗?
这不是关于立即执行的函数与常规函数的问题;而是关于立即执行的函数与常规函数的比较。事实上,它几乎没有任何关系。
立即调用的包装函数的唯一目的是限制包装函数本地变量的范围。
(function() {
// This variable is only available within this function's scope
var thisIsTemp = "a";
// ...
}());
console.log(thisIsTemp); // undefined
vs:
// This variable is available globally
var thisIsTemp = "a";
// ...
console.log(thisIsTemp); // "a"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)