请问以下JS代码中的括号是什么意思?

2024-11-06 11:08:53
推荐回答(2个)
回答1:

这属于js匿名函数的一种!
这种写法可以看做是私有的内部类,一般出于加载时就需要立即执行的代码可以这样来些,第2个就是避免与其它的名称相冲突.
给你举个例子看看:
(function(p1,p2){alert(p1+p2);})(1,2);
实际就相当与
function test(p1,p2){
alert(p1+p2);
}
test(1,2);
(function(){})();
匿名方法的好处,上面也有提到.
1.其它外部调用不到,相对安全.
2.可用于onload事件保证不与其冲突.
3.可看做线程安全.曾经做项目时遇到过一个循环读取值的问题,每次得到的都是第一个值,最后用该函数解决的.

下面介绍一下它的调用
var fnc = function(){alert('x');},这里function如果不赋值给fnc那么它就是一个匿名函数,这种函数我们称为回调函数.调用方式fnc();

下面是匿名函数的调用。
有返回值的调用函数
得到返回值。强制运算符使函数调用执行
<1>
(function(p1,p2){
return p1+p2;
}(1,2));

强制函数直接量执行再返回一个引用,引用在去调用执行
<2>
function(p1,p2){
return p1+p2;
})(1,2);

无返回值的调用
<3>
void function(p1) {
return p1++;
}(2);

测试function test(){
return (function(p1,p2){
return p1+p2;
})(1,2);
//等以上几种情况.
}
alert(test());
结果33undefined

这个是百度知道里面的另一个比较详细的回答(原作者为:heruyi )

回答2:


  ★你的肚子看起来像篮球;

百度搜索 :宫胎宝 希望我的答案可以帮助到你