1
function b() {
   return "B";
}
function output(par){
    var l=par;
    alert(l);
}
output(b);

我得到的结果是:

function b() (
     return "B";
)

但是当我在函数之外定义变量“l”时。喜欢:

function b() {
   return "B";
}
var l=b();
alert(l);
}

结果是“B”;

我如何使函数在第二种情况下表现得像在函数内部,为什么不以同样的方式对待它?

4

2 回答 2

3

当你这样做时:

var l = b();

...您正在调用 b,并将结果分配给l. 如果您想l引用函数 object b,您只需说:

var l = b;

(同样,在你的output()函数中,如果你这样做了var l = par(),它会显示“B”。)

于 2013-11-12T02:43:30.030 回答
1

在第一种情况下:您将函数 b 作为参数发送到函数 output 。在第二种情况下:您使用“b()”调用函数 b,因此此时变量 l 是 B 而不是函数本身。

于 2013-11-12T02:46:31.127 回答