Я объявляю метод объекта в javascript. Внутри этого метода я хочу выполнить вызов ajax и, когда вызов будет выполнен, изменить некоторые атрибуты этого объекта.Передача ссылки объекта внутри другого объекта
Bubble.prototype.draw = function(){
console.log(this.attribute) // -> works fine
var req = $.ajax({
url: "someFile.php",
type: "post",
data: someData
});
// handle response
req.done(function (response, textStatus, jqXHR){
console.log(this.attribute) // -> not in the scope, obviously
});
}
Как я могу поставить this.attribute
в сферу req.done
? Как я могу получить доступ ко всему объекту Bubble
внутри req.done
? В настоящее время все мои Bubble
s находятся в массиве, поэтому я могу просто передать индекс этого массива и получить доступ к свойствам таким образом (array[i].attribute
). Я думаю, что есть намного лучший способ сделать это.
вы пробовали контекст: это, как вариант Ajax? Не уверен, что он работает в этом случае. –
'this' необходимо сохранить в переменной где-то вне функции'. $ .ajax() '. 'var self = this;' тогда вы можете получить доступ к 'this', используя' self'. –