MyObject = function(){
this.field = null;
this.build = function(cb){
var my_url = "...";
var my_data = "...";
var self = this;
$.get(my_url, my_data, function(result){
self.field = result;
cb(result);
});
}
this.get = function(){
return this.field;
}
}
object = new MyObject();
object.build(function(field) {
console.log(object.get() === field);
});
Я рекомендую передать обратный вызов вашей функции сборки, чтобы вы могли получать уведомления немедленно , когда ваше поле установлено.
Кроме того, размещение var self = this
внутри вашего метода гарантируетВы можете позвонить object.build.call(scope, f)
без привязки к неправильной области.
Этот шаблон особенно полезен при наследовании, когда вы хотите вызвать метод другого класса.