Я пытаюсь присвоить некоторые данные JSON свойству экземпляра JS.Class .
var MyClass = new JS.Class({
initialize: function(uuid) {
this.uuid = uuid;
},
write: function() {
$.getJSON(url+"?callback=?", {}, function(data) {
Assign(data);
});
function Assign(data) { this.content = data; };
}
});
var m = new MyClass("uuid_goes_here");
m.write();
JSON принимается асинхронно, поэтому в обратном вызове $.getJSON
есть вызов функции.
Проблема, с которой я столкнулся сейчас, заключается в том, что this.content
в функции Assign
не входит в область действия метода экземпляра с именем write
. Так что, в то время как this.uuid
возвращает правильно, this.content
остается неопределенным (как и следовало ожидать).
Есть идеи, как это исправить? Я попытался использовать глобальную переменную в качестве обходного пути, но асинхронный вызов не позволяет этого (плюс это дурацкое решение).
Некоторые моменты, на которые следует обратить внимание, если они имеют значение: я должен использовать JSONP, поэтому «? Callback =?» должен остаться, и я хотел бы сохранить его асинхронным.