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

时间:2012-12-31 15:54:57

标签: javascript jquery function

  

可能重复:
  What is the purpose of a self executing function in javascript?
  What does this mean? (function (x,y)){…}){a,b); in JavaScript

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

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

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

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

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

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

3 个答案:

答案 0 :(得分:2)

  

最后一个支架的含义

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

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

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

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

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

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

答案 1 :(得分:1)

假设我们有:

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

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

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

答案 2 :(得分:0)

查看此问题:What is this practice called in JavaScript?

基本上,该函数将使用您传递的参数执行。 在此示例中,param的值为jQuery

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