可能重复:
What does this mean? (function (x,y)){…}){a,b); in JavaScript
What do parentheses surrounding a JavaScript object/function/class declaration mean?
大家好
我不知道以下内容:
(function(){
// Do something here
...
})(someWord) //Why is this here?;
我的问题是:
(function(){});
?我通常在jquery代码和其他一些javascript库中看到这些。
答案 0 :(得分:50)
您立即使用特定参数调用匿名函数。
一个例子:
(function(name){
alert(name);
})('peter')
此警告“彼得”。
对于jQuery,您可以将jQuery
作为参数传递,并在函数中使用$
。所以你仍然可以在noConflict模式下使用jQuery但是使用方便的$
:
jQuery.noConflict()
(function($){
var obj = $('<div/>', { id: 'someId' });
})(jQuery)
答案 1 :(得分:8)
您正在创建一个立即被调用的函数,someWord
作为参数。
答案 2 :(得分:7)
基本上,这允许您声明一个匿名函数,然后将其括在括号中并编写(someWord)
,您正在运行该函数。您可以将其视为声明一个对象,然后立即实例化该对象。
答案 3 :(得分:7)
它用于创建匿名函数(没有名称的函数,可以在其他函数中“嵌套”)并将参数传递给该函数。 someWord作为参数传递,函数可以使用关键字“arguments”读取它。
简单的使用示例:
function Foo(myval) {
(function(){
// Do something here
alert(arguments[0]);
})(myval); //pass myval as argument to anonymous function
}
...
Foo(10);
答案 4 :(得分:6)
这是一种定义匿名函数然后立即执行它的方法 - 不留下任何痕迹。该功能的范围是真正的本地。最后的()
括号执行函数 - 括号括起来消除正在执行的内容。
答案 5 :(得分:2)
或许this帖子会对你有所帮助。