这是我的代码:
var APP = {}
APP.item = function() {
var two = function() { return "three"; }
return {
two: two
};
}
console.log(APP.item.two);
现在,从我读过的内容来看,输出不应该是“三”吗?相反,结果是未定义的。
答案 0 :(得分:4)
item
和two
都是需要调用的函数:
console.log(APP.item().two());
...
EXTRA EXPLANATORY注意:在原始代码中,item
位只返回函数,而不是您希望函数返回的对象。因此,当您要求item.two
时,它找不到two
属性(因为它是返回对象的一部分,而不是item
函数本身的一部分)。希望能为你理解这一点。
答案 1 :(得分:2)
结果是未定义的,因为您没有调用APP.item
函数(从而获得return
值。此外,您需要调用two
函数来获取其返回值:< / p>
console.log( APP.item().two() ); // outputs "three"