嗨,大家好,
我想问你在
中包装所有内容的原因是什么(function() {
document.write("Hello World!");
})();
功能?
欢呼声
答案 0 :(得分:11)
自执行匿名函数的主要目的是将所有内容包装在私有名称空间中,这意味着声明的任何变量都不会污染全局名称空间,基本上就像沙箱一样。
var test = 1;
test
会污染全局命名空间,window.test将被设置。
(function() {
var test = 1; alert( test );
})();
window.test未定义,因为它位于我们的私有沙箱中。
答案 1 :(得分:5)
“保护”全球命名空间免受污染。
(function() {
var something = "a thing";
// ...
if (something != "a thing") alert("help!");
// ...
function utility(a, b) {
// ...
};
// ...
})();
现在,这些临时变量和函数都受到外部抛弃函数的保护。里面的代码可以使用它们,但是全局命名空间保持干净,没有脏的,不需要的变量。
全局命名空间是一种宝贵的资源。我们都应该意识到它对我们自己,特别是对我们孩子的重要性。