addEventListener из одного метода не видит другой метод этого же класса

Всем привет! Не могу понять, почему addEventListener из одного метода класса не видит другой метод этого же класса. Получаю ошибку Uncaught TypeError: this.movePath is not a function. Из других методов метод movePath(path) доступен. Код такой

movePath(path) {
        console.log(path)
    }
    
addEventListeners() {
        const command = [].slice.call(document.querySelectorAll('.file'))
        command.forEach(function(command) {
            command.addEventListener('dblclick', function(e) {
                this.movePath(e.target.dataset.name);
            }, false)
        })
    }
Заранее спасибо! UPD. self.movePath(e.target.dataset.name); тоже не работает


Ответы (2 шт):

Автор решения: Asadbek Raimov

Это зависит от того, как вы используете этот класс. Поэтому вы должны использовать

 static movePath(){
 console.log('Some text')
}
→ Ссылка
Автор решения: Volloff

Вот таким образом решается проблема потери контекста.

addEventListeners() {
        let that = this;// тут
        const command = [].slice.call(document.querySelectorAll('.file'))
        command.forEach(function(command) {
            command.addEventListener('dblclick', function(e) {
                that.movePath(e.target.dataset.name);
            })
        })
    }

Вроде как есть еще варианты решения с call или aply но я решил воспользоваться этим способом

→ Ссылка