你还没有说什么Class.create
是(JavaScript 本身没有),但我认为这对这个问题并不重要。
我假设您要设置实例,而不是原型(但如果我错了,请参见下文)myAttr
。最简单的方法是利用您的回调已经是调用上下文的闭包这一事实,因此您将变量设置为(因为在回调中会有所不同)并使用它:success
setMyAttr
this
this
success
var MyClass = Class.create();
MyClass.prototype = {
myAttr:0,
setMyAttr: function(){
var self = this; // <== Set the variable
jQuery.ajax({
url:'data.php',
success:function(data) {
self.myAttr = data; // <== Use it
}
});
}
};
更多关于闭包:闭包并不复杂
但是,如果我错了,而您确实想更新原型:
var MyClass = Class.create();
MyClass.prototype = {
myAttr:0,
setMyAttr: function(){
jQuery.ajax({
url:'data.php',
success:function(data) {
MyClass.prototype.myAttr = data;
}
});
}
};
(注意;
原型分配的末尾。我强烈主张不要依赖自动分号插入的恐怖。)