В поисках руководства по проблеме изменения объекта в функции замыкания.Я переписываю программу на Angular 5. Моя программа использует хранилище для управления мастером форм, где на некоторые вопросы отвечают элементы / кнопки svg.После нажатия устанавливается свойство объекта.Приведенный ниже код является скелетной версией того, с чем у меня возникла проблема.
Я читал другие закрывающие посты, но не нашел ни одного, который бы соответствовал моему сценарию.
Спасибо за ответы и / или предложения по рефакторингу.
class Builder {
object:any;
constructor(){
this.object = {
car:'blue'
}
}
init(){
//Short cutting to click commands.. Using lodash
_.forEach(database, (o)=>{
console.log(this.object.car); // 'blue' to console
((function(){
button.click(function(){
this.object.car = 'red';
console.log(this.object.car); //Cannot read property
'object' of undefined
});
})(),false)
}
}
}
Обновление до исходного сообщения
Я думаю, мне нужно добавитьнемного больше информации на мои вопросы для других, которые могут столкнуться с этой проблемой.Код, который я предоставил, был скелетом моего общего кода.
Перед тестированием я выполнил рефакторинг вызовов функции (), используя обозначение стрелки () = {} (в разных комбинациях), и это не решило проблему, потому что это далее нарушало методы, требующие (this) .element какрезультат button.click ().