在类构造函数中 this.button = document.getElementById('button') / Uncaught TypeError: Cannot read property 'addEventListener' of undefined?

伊戈尔·克柳赫尼克

我得到了带有一些代码的 webpack 包:

class View extends EventEmitter {

    constructor() {
        super();
        this.input = document.getElementById('input');
        this.btn = document.getElementById('button');
        this.list = document.getElementById('list');
    }
    addListeners() {
        this.btn.addEventListener('click',this.emit('some', this.inputValue));
    }
   // some other stuff
}

//--------got error : Uncaught TypeError: Cannot read property 'addEventListener' of undefined

但是当我在做:

addListeners() {

// document.getElementById('button') instead of this.btn everything is good 


document.getElementById('button').addEventListener('click',this.emit('some', this.inputValue));
    }
阿洛纳德

我认为问题出在上下文中。在您的 addListeners 方法中,放入

console.log(this);

查看此函数内部的上下文。它可能指向的不是您所期望的。

此外,要添加事件侦听器,您可以这样做:

this.btn.addEventListener('click',this.emit);

使用您当前的代码执行一次函数,您不需要添加事件侦听器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档