Как сохранить контроль над этим ключевым словом при расширении прототипов в jQuery? [Дубликат]
This question already has an answer here:
How to access the correct `this` inside a callback? 10 answersЯ реализую классоподобную структуру в 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()
построить выше), я получаю ошибку & quot;myFunction() is not a function
. & Quot;
Я думаю, что это как-то связано сthis
ключевое слово меняет свое значение внутри блока jQuery, но я не уверен. Любая помощь будет оценена!