давайте предположим, что у нас есть объект, подобный этому ниже:
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.method не является функцией».Это потому, что наше «this» не указывает на объект foo.Я не хочу делать что-то вроде этого:
var self = this;
И затем использовать переменную self вместо этого, потому что я делаю много изменений внутри переменных объекта.
Заранее спасибоза помощь.Приветствия