Я использую JQuery и написал следующий код:Calling класс в цикле
function Test() {
this.value = '';
this.someFunction = function() {
// do something
}
this.loopFunction = function() {
var array = ['one', 'two', 'three'];
array.foreach(function() {
// calling someFunction not possible because 'this' is defined as value of loop
this.someFunction();
});
}
}
Моя проблема заключается в том, что я не могу вызвать функцию SomeFunction в цикле, поскольку ключевое слово «это» в настоящее время определяется как значение цикла. Есть ли способ сделать это, не потеряв эту «классную»?
Это стандартная проблема с закрытием. Используйте локальный var для сохранения предыдущего 'this'. –
Простой, но эффективный. Спасибо – diealtebremse
Другая проблема с 'bind' - вы теряете локальный' this' (элемент массива), к которому вы также можете получить доступ в одно и то же время (хотя это передается функции как параметр). –