首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

匿名函数括号有关问题

2012-10-23 
匿名函数括号问题JScript code(function (a){return function(){alert(a)}})(1)将以上代码写成:JScript co

匿名函数括号问题

JScript code
(function (a){return function(){alert(a)}})(1)

将以上代码写成:
JScript code
function (a){return function(){alert(a)}}(1)

是不正确的
但是
JScript code
function c(a,fn){fn()}c(1,function (a){return function(){alert(a)}}(1));

作为参数的那个匿名函数外面的括号加不加都能正常运行,这是为什么呢??

[解决办法]
JScript code
(function (a){return function(){alert(a)}})(1)
[解决办法]
()在js中是强制表达式运算

(function (a){
return function(){alert(a)}
})(1)
不用()括着的话,引擎不知道你要强制运算他
其他它等同于
(function (a){
return function(){alert(a)}
}(1))

所以就可以理解function c(a,fn){fn()}
c(1,function (a){
return function(){alert(a)}
}(1));
为什么是正确了

热点排行