javascript-函数 - JavaScript中函数执行问题
黄舟
黄舟 2017-04-10 15:01:28
[JavaScript讨论组]
JavaScript1.
var b = function box(){
    alert(1);
};
--------------------
2.
function box(){
    alert(1);
}
var b = box();

这个例子中,第一个代码并不会有警告框,而第二个会有.这是为什么?第一个赋值语句为什么没有执行函数,而第二个赋值语句却执行了函数?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(6)
阿神
  1. 第一个是函数表达式,没有执行。
  2. 第二个相当于:
javascriptvar b = box;
b();

另外,box是函数名,只作为栈区里的一个指针,指向function(){alert(1);}

天蓬老师
  1. var b = function box() { ... }只是一个函数表达式,并没有调用函数。
  2. var b =box(); 等于 var b = (funciton box(){ ... }); 如果box函数有返回值的话就赋值给变量b
PHP中文网
var b = (function box(){
  alert(1);
})();

这样才1=2.

巴扎黑

第一个函数你只是声明,又没有执行,第二个函数你是执行了。

迷茫
var b = box();

等于

var b = (function box(){...}());

如果只是想把box方法赋给b

var b = box;
大家讲道理

1.
var b = function box(){
alert(1);
}();

=============== 等价于 ============>
2.
function box(){
alert(1);
}
var b = box();

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号