【发布时间】:2014-05-28 00:39:40
【问题描述】:
我正在将命名函数表达式分配给对象的属性:
var foo = {};
foo.bar = function bar(){
console.log('bar');
};
-
foo.bar()=> 酒吧 -
bar()=> ReferenceError: bar is not defined
为什么不能直接调用bar(),为什么没有定义?
我知道我可以像var bar = foo.bar = function(){} 这样简单地链接分配,所以我不是在寻找解决方法或其他解决方案,我只对为什么感兴趣工作。
我已经在 Chrome 控制台和 Node.JS 中进行了测试。
【问题讨论】:
-
bar()实际上是指window.bar(),它没有在window命名空间中定义。相反,它是在foo命名空间中定义的。
标签: javascript