JavaScript中函数执行问题
JavaScript
1. var b = function box(){ alert(1); }; -------------------- 2. function box(){ alert(1); } var b = box();
这个例子中,第一个代码并不会有警告框,而第二个会有.这是为什么?第一个赋值语句为什么没有执行函数,而第二个赋值语句却执行了函数?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
另外,box是函数名,只作为栈区里的一个指针,指向
function(){alert(1);}
var b = function box() { ... }
只是一个函数表达式,并没有调用函数。var b =box();
等于var b = (funciton box(){ ... });
如果box
函数有返回值的话就赋值给变量b
。这样才1=2.
第一个函数你只是声明,又没有执行,第二个函数你是执行了。
等于
如果只是想把box方法赋给b
1.
var b = function box(){
alert(1);
}();
=============== 等价于 ============>
2.
function box(){
alert(1);
}
var b = box();