javascript匿名函数自我执行的小问题

a=function(num){returnnum;}(i);这样就可以执行function(num){returnnum;}(i);这样就不可以执行,得这样才可以执行(... a = function (num){
return num;
}(i); 这样就可以执行

function (num) {
return num;
}(i); 这样就不可以执行,得这样才可以执行

(function (num) {
return num;
})(i);
展开
 我来答
http_p
2013-01-31 · TA获得超过1095个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:581万
展开全部
第二个不是匿名执行函数,
第一个是匿名函数(但是不建议这么做, 因为有可能会引起歧义), a到底是function还是num.. 实际上是一个num

第二个缺少函数名 报错
第三个才是匿名执行函数(推荐这样写)

主要原因是浏览器对js的解析方法, 如果你非要写类似于1这样的代码, 你就需要好好研究浏览器如何解析js的, 是从右向左还是从左向右, 还有好多好多判断....

所以作为一个使用者, 我们要写标准的代码, 这种歧义性很大的代码万万写不得,
1192779725
2013-01-31 · TA获得超过174个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:136万
展开全部
你可以在代码的一样中写一个量吗?比如只写1或者只写!false;。这样 你就明白你的小问题了。道理是一样的。再试试eval();函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zj_ljgong
2013-01-31 · TA获得超过269个赞
知道小有建树答主
回答量:482
采纳率:78%
帮助的人:134万
展开全部
中间的可以认为是函数的定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式