为什么需要在同一行上调用匿名函数?
我正在阅读一些关于关闭的帖子,到处都看到了这一点,但没有明确的解释它是如何工作的 - 每次我都被告知要使用它......:
// Create a new anonymous function, to use as a wrapper
(function(){
// The variable that would, normally, be global
var msg = "Thanks for visiting!";
// Binding a new function to a global object
window.onunload = function(){
// Which uses the 'hidden' variable
alert( msg );
};
// Close off the anonymous function and execute it
})();
好的,我看到我们将创建新的匿名函数,然后执行它。因此,在此之后,这个简单的代码应该可以工作(它确实可以工作):
(function (msg){alert(msg)})('SO');
我的问题是,这里发生了什么样的魔术?我以为当我写:
(function (msg){alert(msg)})
然后将创建一个新的未命名函数,如函数“”(msg)...
但是为什么这不起作用呢?
(function (msg){alert(msg)});
('SO');
为什么它需要在同一行中?
你能给我一些帖子或给我一个解释吗?