давайте предположим, что у нас есть объект, как это показано ниже:Запуск JQuery внутри метода объекта
function foo(some_var) {
this.some_var = some_var;
}
Теперь мы добавим метод с помощью прототипа:
foo.prototype.method = function(value) {
this.some_var += value;
}
Тогда мы имеем метод, с которым у меня есть некоторые проблемы:
foo.prototype.problematic = function(args) {
//using jQuery $.getJSON function
$.getJSON('http://url.com', args, function(data) {
for(var i in data) {
this.method(data[i].value);
// we have error in console: "this.method is not a function"
// this doesn't point to object foo, but to data which are returned by $.getJSON function
}
}
}
Как я уже упоминал в комментариях выше, в консоли Firebug имеется ошибка: «this.meth od не является функцией ". Это потому, что наше «это» не указывает на объект foo. Я не хочу, чтобы сделать что-то вроде этого:
var self = this;
И затем, используя переменные себя вместо этого, потому что я делаю много о изменениях внутри объектных переменных.
Заранее за вашу помощь. Приветствия
спасибо, трюк с контекстом: это работает отлично –