基本上,我使用一個稱爲Joose的元類框架,它允許我使用更優雅的類語法 - 但我不知道如何去引用範圍對象來自類聲明的更深層次的方法。我也用require.js爲dependemcy管理...Javascript範圍引用外部對象
下面是一個例子類定義:
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功能我必須寫變種自我=這讓我的對象進入AJAX調用的範圍 - 沒有問題。但是,我發現自己正在爲我的課程聲明中的幾乎每一種方法都這樣做!我如何以一種乾淨而有效的方式在所有方法中引用自我?我知道你可以通過設置一個參數來在AJAX中使用範圍,假設它不僅僅是AJAX,還有其他一些將範圍關閉到外部的函數。
謝謝。
是的,我知道第一點,我只是想說明。感謝您的幫助,但我想我只需要習慣它! –
標記爲正確,因爲它是最徹底的 –