JS函数定义:最后一个括号的含义

可能重复:
在javascript中自执行函数的目的是什么?
这是什么意思? (function(x,y)){…}){a,b); 在JavaScript中

我看到有时像这些例子那样定义了函数:

(function() { .... })(); (function(param) { .... })(JQuery); (function(chat, Friend) { .... })(chat, chat.module("friend"); 

经过一些网络研究,我没有找到任何有关最后括号信息含义的信息。

有人解释如何使用它吗? 或者只是简单地指出解释其含义的网络链接?

最后一个支架的含义

 (function() { .... })(); 

最后的()导致函数内的代码立即执行。

 (function(param) { .... })(JQuery); 

(JQuery)最终导致函数内部的代码立即执行,将JQuery作为参数传递给它。

 (function(chat, Friend) { .... })(chat, chat.module("friend")); 

(chat, chat.module("friend"))最后会导致函数内的代码立即执行,并将chat.module("friend")作为参数传递给它。

假设我们有:

 function add1 (x) { return x+1; } 

然后我们可以调用add1(5)来获取值6。

但是使用括号,而不是调用add1(5) ,我们可以用(function (x) {return x+1;})(5)替换它。 基本上这会创建一个函数,并立即将其应用于值5,而当我们调用add1(5) ,我们使用的是命名/定义函数。

看看这个问题: JavaScript中的这种做法是什么?

基本上,该函数将使用您传递的参数执行。 在这个例子中, param将具有jQuery的值:

 (function(param) { .... })(JQuery);