众所周知,以下代码将不会运行a()函数,因此不会显示警告框
// 1st
function a() {
alert('A!');
return function() {
alert('B!');
};
};
并且我们知道以下代码将运行a()函数和警告框“ A!” 会出现
// 2nd
function a() {
alert('A!');
return function() {
alert('B!');
};
};
a(); // calling function
但是,如果我们运行以下代码,则将调用a()函数,并警告框“ 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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句