可能重复:
JavaScript 闭包是如何工作的?
我在玩Google Closure Compiler,输入随机代码来看看它会做什么。
它重写了我的一个函数,看起来像这样:
(function(msg) { console.log(msg); })("Hello World!");
看起来这"Hello World"
是传递msg
给它之前的匿名函数的参数。我看了一会儿,以为我在 jQuery 插件中看到过类似的东西,看起来像:
(function( $ ) {
...
})(jQuery);
在与$
. 但是将参数传递给这样的匿名函数的主要原因或目的是什么?为什么不简单地将参数定义为函数中的变量?编写这样的函数是否有任何性能或灵活性优势?