这是什么;(函数(){})&引用;,括号内的函数,在javascript中是什么意思?
可能的重复项:这是什么;(函数(){})&引用;,括号内的函数,在javascript中是什么意思?,javascript,coding-style,scope,anonymous-function,javascript-namespaces,Javascript,Coding Style,Scope,Anonymous Function,Javascript Namespaces,可能的重复项: 大家好 我不知道下面的内容是什么: (function(){ // Do something here ... })(someWord) //Why is this here?; 我的问题是: 把一个函数放在括号里是什么意思(函数(){}) 括号集在函数末尾做什么 我通常在jquery代码和其他一些javascript库中看到这些函数。您正在创建一个立即被调用的函数,并使用someWord作为参数。这是一种定义匿名函数然后立即执行它的方法,不会留下任何痕迹。函数的作
大家好 我不知道下面的内容是什么:
(function(){
// Do something here
...
})(someWord) //Why is this here?;
我的问题是:
我通常在jquery代码和其他一些javascript库中看到这些函数。您正在创建一个立即被调用的函数,并使用
someWord
作为参数。这是一种定义匿名函数然后立即执行它的方法,不会留下任何痕迹。函数的作用域确实是局部的。最后的()
括号用于执行函数——括号用于消除正在执行的内容的歧义。基本上,这允许您声明一个匿名函数,然后通过将其括在括号中并编写(someWord)
来运行函数。您可以将其视为声明一个对象,然后立即实例化该对象。它用于创建匿名函数(没有名称的函数,可以“嵌套”在其他函数中)并将参数传递给该函数。
someWord作为参数传递,函数可以使用关键字“arguments”读取它
简单的用法示例:
function Foo(myval) {
(function(){
// Do something here
alert(arguments[0]);
})(myval); //pass myval as argument to anonymous function
}
...
Foo(10);
您正在使用特定参数立即调用匿名函数 例如:
(function(name){
alert(name);
})('peter')
这会提醒“peter”
对于jQuery,您可以将jQuery
作为参数传递,并在函数中使用$
。因此,您仍然可以在noConflict模式下使用jQuery,但可以使用方便的$
:
jQuery.noConflict()
(function($){
var obj = $('<div/>', { id: 'someId' });
})(jQuery)
jQuery.noConflict()
(函数($){
var obj=$('',{id:'someId'});
})(jQuery)
同样的问题:感谢您的回复,现在有意义了。可以给这个函数起个名字吗?还是必须匿名?哇,这是最尖锐的答案,我明白了。谢谢