JavaScript
1. var b = function box(){ alert(1); }; -------------------- 2. function box(){ alert(1); } var b = box();
这个例子中,第一个代码并不会有警告框,而第二个会有.这是为什么?第一个赋值语句为什么没有执行函数,而第二个赋值语句却执行了函数?
JavaScript
1. var b = function box(){ alert(1); }; -------------------- 2. function box(){ alert(1); } var b = box();
这个例子中,第一个代码并不会有警告框,而第二个会有.这是为什么?第一个赋值语句为什么没有执行函数,而第二个赋值语句却执行了函数?
var b = function box() { ... }
只是一个函数表达式,并没有调用函数。var b =box();
等于 var b = (funciton box(){ ... });
如果box
函数有返回值的话就赋值给变量b
。 1.
var b = function box(){
alert(1);
}();
=============== 等价于 ============>
2.
function box(){
alert(1);
}
var b = box();
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
另外,box是函数名,只作为栈区里的一个指针,指向
function(){alert(1);}