基本上,我使用一个称为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,还有其他一些将范围关闭到外部的函数。
谢谢。
是的,我知道第一点,我只是想说明。感谢您的帮助,但我想我只需要习惯它! –
标记为正确,因为它是最彻底的 –