私のJavaScriptプロジェクトをどのようにして構築するかについては、私の基本的なJavaScriptオブジェクトの例で説明します。私はいくつかの助けを求めています。JavaScriptのルートレベルのオブジェクトへのアクセスこのキーワードの値
私のTestApp.init()
関数この関数は、cache
という別のオブジェクトの1レベル深い別の関数であるthis.cache.cacheFuncOne();
と呼びます。
内部this.cache.cacheFuncOne();
メインオブジェクトthis.prop1
のプロパティにアクセスしようとすると、定義されません。
他のオブジェクトに1レベル深くネストされていない他の関数からthis.prop1
にアクセスすると、期待どおりに動作し、値が表示されます。
cache{}
オブジェクトでは、this
キーワードは、ルートレベルオブジェクトのthis
と同じ値ではありません。
この簡単なデモに基づいて、以下のcache{}
オブジェクト内のルートレベルthis
の値にはどのようにしてアクセスできますか?
var TestApp = {
prop1: 'property1',
init: function() {
this.cache.cacheFuncOne();
alert(this.prop1);
},
funcOne: function() {
},
funcTwo: function() {
},
cache: {
cacheFuncOne: function() {
alert(this.prop1);
},
}
}
TestApp.init();
これはシングルトンオブジェクトなので、 'TestApp.prop1'を使います。 –
私はあなたが親スコープのこの値を取得するために.bind(this)を使うことができると思います。 –