众所周知,下面这个不会运行 a() 函数 so the 不会出现警告框
// 1st
function a() {
alert('A!');
return function() {
alert('B!');
};
};
我们知道下面的代码将运行 a() 函数 and 警报框“A!”会出现
// 2nd
function a() {
alert('A!');
return function() {
alert('B!');
};
};
a(); // calling function
However,如果我们运行以下代码,a() 函数将被调用 and 警报框“A!”也会出现,就像上面的第二个代码一样
// 3rd
function a() {
alert('A!');
return function() {
alert('B!');
};
};
var x = a(); // assigning function to new variable
问题:为什么会发生这种情况(在第三个片段上)?我们还没有调用 a() 函数(我目前的理解)。我们不是刚刚将 x 分配给了 a() 函数吗?
我们不是刚刚将 x 分配给了 a() 函数吗?
不,您将 a() 的返回值分配给了 x。
如果你不想打电话a
, 然后做
var x = a;
然后再做
x();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)