JavaScript1. var b = function box(){ alert(1); }; -------------------- 2. function box(){ alert(1); } var b = box();
这个例子中,第一个代码并不会有警告框,而第二个会有.这是为什么?第一个赋值语句为什么没有执行函数,而第二个赋值语句却执行了函数?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
另外,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();