这个“(function());”,括号内的函数,在javascript中是啥意思? [复制]

Posted

技术标签:

【中文标题】这个“(function());”,括号内的函数,在javascript中是啥意思? [复制]【英文标题】:What does this "(function());", a function inside brackets, mean in javascript? [duplicate]这个“(function());”,括号内的函数,在javascript中是什么意思? [复制] 【发布时间】:2011-05-01 21:56:48 【问题描述】:

可能的重复:What does this mean? (function (x,y))…)a,b); in javascriptWhat do parentheses surrounding a JavaScript object/function/class declaration mean?

大家好

我不知道以下是做什么的:

(function()
  // Do something here
  ...
)(someWord) //Why is this here?;

我的问题是:

    将函数放在括号内是什么意思。即(function());? 函数末尾的括号集有什么作用?

我通常在 jquery 代码和其他一些 javascript 库中看到这些。

【问题讨论】:

同样的问题:***.com/questions/3921922/… 【参考方案1】:

您会立即使用特定参数调用匿名函数。

一个例子:

(function(name)
  alert(name);
)('peter')

这会提醒“peter”。

对于 jQuery,您可以将 jQuery 作为参数传递并在函数中使用 $。所以你仍然可以在 noConflict-mode 下使用 jQuery,但使用方便的 $:

jQuery.noConflict()
(function($)
  var obj = $('<div/>',  id: 'someId' );
)(jQuery)

【讨论】:

感谢您的回复,现在有意义了 这个函数可以命名吗?还是必须匿名?【参考方案2】:

您正在创建一个立即被调用的函数,并以someWord 作为参数。

【讨论】:

哇,这是最尖锐的答案,我明白了。谢谢【参考方案3】:

这是一种定义匿名函数然后立即执行它的方法——实际上不留下任何痕迹。该函数的范围是真正的本地。末尾的() 括号执行该函数——封闭的括号是为了消除正在执行的内容的歧义。

【讨论】:

【参考方案4】:

基本上,这允许您声明一个匿名函数,然后将其括在括号中并编写(someWord),您正在运行该函数。您可以将其视为声明一个对象,然后立即实例化该对象。

【讨论】:

【参考方案5】:

它用于创建匿名函数(可以“嵌套”在其他函数中的没有名称的函数)并将参数传递给该函数。 someWord 作为参数传递,函数可以使用关键字“arguments”读取它。

简单的用法示例:

function Foo(myval) 
    (function()
      // Do something here
      alert(arguments[0]);
    )(myval); //pass myval as argument to anonymous function

...
Foo(10);

【讨论】:

以上是关于这个“(function());”,括号内的函数,在javascript中是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Perl 匹配括号内的内容

JS调用函数时啥时候加小括号()?啥时候不加小括号()?

函数声明语法:函数名前括号内的东西

箭头函数(Arrow Function)

为啥这个 F# 函数需要括号?

setTimeOut(),和setInterVal()调用函数加不加括号!!!