我正在尝试使用面向对象的JavaScript来保持代码的整洁,而不是像通常那样拥有一个混乱的巨大脚本。使用Ajax使这变得复杂,由于其异步性质,很难分离代码。
我遇到的一个具体问题是使用Ajax设置对象属性。
我有以下代码:
我遇到的一个具体问题是使用Ajax设置对象属性。
我有以下代码:
var Class = function(){
this.attr1;
}
Class.prototype.setAttr1 = function(){
var self = this;
$.ajax({
url:'http://api.something.com?get=somedata',
success: function(data){
self.attr1 = data.name;
}
});
}
这应该是可行的,但如果我从其他地方访问属性,我无法确定属性是否已设置,对吗?有没有办法解决这个问题。比如,如果我需要在某个地方使用attr1
,我可以等待ajax返回或者做些什么吗?或者如果我完全错了,人们在使用Ajax时如何封装代码?
this.attr1;
这一行代码是做什么用的? - T.J. Crowder