Как сохранить контроль над этим ключевым словом при расширении прототипов в jQuery? [Дубликат]
На этот вопрос уже есть ответ здесь:
Как получить доступ к правильному `this` внутри обратного вызова? 10 ответовЯ реализую классоподобную структуру в JQuery, но яУ меня возникли проблемы при попытке вызвать некоторые из моих функций.
Вот как настраивается структура:
MyClass = function(name) {
this.init(name);
}
$.extend(MyClass.prototype, {
init: function(theName) {
this.myFunction(); // works
$('.myclass').each(function(){
this.myFunction(); // doesn't work
});
},
myFunction = function(){}
});
Проблема яу меня есть то, что, когда я пытаюсь вызвать одну из моих функций (например,myFunction()
) внутри блока JQuery (например,each()
построить выше), я получаю ошибку "."myFunction() is not a function
Я думаю, что это как-то связано сthis
Ключевое слово меняет свое значение внутри блока JQuery, но яЯ не уверен. Любая помощь будет оценена!