2

这是我的代码:

var APP = {}

APP.item = function() {
    var two = function() { return "three"; }
    return {
        two: two
    };
}

console.log(APP.item.two);

现在,根据我的阅读,输出不应该是“三”吗?相反,结果是未定义的。

小提琴:http: //jsfiddle.net/mhxpz/1/

4

2 回答 2

4

item和都是two需要调用的函数:

console.log(APP.item().two());

...

额外说明:在您的原始代码中,该item位只是返回函数,而不是您希望函数返回的对象。因此,当您请求item.two它时,找不到two属性(因为它是返回对象的一部分,而不是item函数本身的一部分)。希望这对你有意义。

于 2013-04-15T17:05:10.143 回答
2

结果是未定义的,因为您没有调用该APP.item函数(因此获取return值。您还需要调用该two函数以获取其返回值:

console.log( APP.item().two() );  // outputs "three"
于 2013-04-15T17:07:21.147 回答