基本的に、私はJoose for Javascript と呼ばれるメタクラス フレームワークを使用して、より洗練されたクラス構文を利用できるようにしていますが、クラスのより深いメソッド内からオブジェクトのスコープを参照する方法がわかりません。宣言。また、依存関係管理にrequire.jsを使用しています...
クラス定義の例を次に示します。
define([
'jquery',
'handlebars',
], function($, Handlebars){
var MyClass = Class("MyClass", {
//inheritance
isa: SuperClass,
//instance vars
has: {
hello:{
is: 'r',
init: 'Hi There!',
},
someVarToBeSetUsingAjax:{
is: 'rw',
init: false,
},
},
//methods
methods: {
init: function () {
var self = this;
self.getAjaxVar();
},
getAjaxVar: function() {
var self = this;
//HOW CAN I REFERENCE 'self' THROUGHOUT MY OBJECT?
$.get('ajax/test.html', function(response) {
self.someVarToBeSetUsingAjax = response.value;
});
},
//lots more methods...
}
});
return MyClass;
});
わかりましたので、私の問題は - AJAX 関数で var self = this を記述して、オブジェクトを AJAX 呼び出しのスコープに入れる必要があることです - 問題ありません。しかし、クラス宣言のほぼすべてのメソッドに対してこれを行っていることに気付きました! クリーンで効率的な方法ですべてのメソッドで自己を参照するにはどうすればよいですか? パラメータを設定することでAJAXでスコープを使用できることはわかっています.AJAXだけでなく、スコープを外側に閉じる他の関数であると仮定します。
ありがとう。