2

これが私のコードです:

var APP = {}

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

console.log(APP.item.two);

さて、私が読んだことから、出力は「3」であるべきではありませんか? むしろ、結果は未定義です。

フィドル: http://jsfiddle.net/mhxpz/1/

4

2 に答える 2

4

itemとはどちらもtwo呼び出す必要がある関数です。

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

...

EXTRA EXPLANATORY NOTE:元のコードでは、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 に答える