我看到立即调用函数表达式或简称IIFE在创建后立即执行 第一对括号(function(){...})将代码(通常是函数)转换为表达式,第二对括号(function(){...})()将函数调用评估表达式的结果。
在尝试避免污染全局命名空间时,通常会使用此模式。这是唯一的原因吗?我看到的例子如
(function(){
// all your code here
var foo = function() {};
window.onload = foo;
// ...
})();
// foo is unreachable here (it’s undefined)
不显示可以调用的函数名称。如果这是原因 - 不是创建一个函数,而是立即执行它,那么这似乎不仅仅是名称空间问题?