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

(function(window,undefined){alert("000");})(window)请问这两个小括号是什么意思?... (function(window, undefined){ alert("000");})(window)请问这两个小括号是什么意思? 展开
 我来答
kobicc
2011-10-19
知道答主
回答量:2
采纳率:0%
帮助的人:3274
展开全部
这属于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 )

参考资料: http://zhidao.baidu.com/question/95786011.html

hzgloevir69
2011-10-17
知道答主
回答量:91
采纳率:0%
帮助的人:25.8万
展开全部

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

百度搜索 :宫胎宝 希望我的答案可以帮助到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式