括号内的函数“(function(){});”在javascript中是什么意思?

IT技术 javascript coding-style scope anonymous-function javascript-namespaces
2021-02-12 01:19:40

可能的重复:
这是什么意思?(function (x,y)){…}){a,b); 在 JavaScript
中,JavaScript 对象/函数/类声明周围的括号是什么意思?

大家好

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

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

我的问题是:

  1. 将函数放在方括号 .ie 中是(function(){});什么意思
  2. 函数末尾的括号集有什么作用?

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

5个回答

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

一个例子:

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

这会提醒“彼得”。

在 jQuery 的情况下,您可以jQuery作为参数传递$在您的函数中使用所以你仍然可以在 noConflict 模式下使用 jQuery,但使用方便的$

jQuery.noConflict()
(function($){
  var obj = $('<div/>', { id: 'someId' });
})(jQuery)
感谢您的回复,现在是有道理的
2021-03-22 01:19:40
可以给这个函数一个名字吗?还是必须匿名?
2021-04-09 01:19:40

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

哇,这是最尖锐的答案,我明白了。谢谢
2021-04-08 01:19:40

这是一种定义匿名函数然后立即执行它的方法——就像它一样不留下任何痕迹。该函数的作用域是真正本地的。最后的()方括号执行函数——括起来的方括号用于消除正在执行的内容的歧义。

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

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

简单的用法示例:

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