我的代码:
var n;
function f(){
var v = "kevin";
n = function(){
return v;
}
}
在FireBug中执行: N(); 结果是“凯文”
在Chrome&中执行IE9:
document.writeln(N); ======> show“undefine” document.writeln(N()); ======>不显示任何内容
我想知道眉毛在执行代码时到底做了什么。 感谢。
该代码是“面向对象的JavaScript”一书的演示,第3章,结束2#
答案 0 :(得分:3)
在执行函数n
之前,变量f()
没有给出值(即,未分配给该函数) - 这在您显示的代码中不会发生。
所以document.writeln(n);
应显示“undefined”,而document.writeln(n());
应该是错误,因为n不是函数。
我不知道为什么它在FireBug中有效 - 你尝试过时已经执行了f()
吗?