1

次のスクリプトがあります

<script>

var Obj = {
        purpose_1: {
            defaults: { 
                purpose:{ my_variable:"Test" } 
            },
            activity: function() {
                console.log( Obj.purpose_1.defaults.purpose.my_variable );
            }
        },

        purpose_2: {

        }
   }

   Obj.purpose_1.activity();

</script>

行からコンソールにアクセスmy_variableして出力を取得していますTest

console.log( Obj.purpose_1.defaults.purpose.my_variable );

次のような近道はありますか

this.my_variable

my_variableこの長いパスの代わりにアクセスする

Obj.purpose_1.defaults.purpose.my_variable

ありがとう。

4

2 に答える 2

3
activity: function () {
    return function() {
        //this now refers to Obj.purpose_1.defaults.purpose
        console.log(this.my_variable);
    }.call(Obj.purpose_1.defaults.purpose);
    // call overrides the context in which the function is executed
}

必要なコンテキストにバインドされた関数を返します! ここにサンプルのフィドルがあります。

Function.prototype.callMDNのメソッドを参照してください。

于 2013-09-16T12:43:04.040 に答える