Javascript 类方法在加载后触发,但在加载后不工作

Javascript 类方法在加载后触发,但在加载后不工作,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在将一个项目迁移到ES6,使用带有Babel的Webpack来编译代码。以下是我现在拥有的: entry.js import Header from './components/header'; (function() { const header = new Header(); })(); header.js export default class Header { constructor() { this.bodyTag = document.querySelect

我正在将一个项目迁移到ES6,使用带有Babel的Webpack来编译代码。以下是我现在拥有的:

entry.js

import Header from './components/header';

(function() {
  const header = new Header();
})();
header.js

export default class Header {
  constructor() {
    this.bodyTag = document.querySelector('body');
    this.toggleNavigationButton = document.querySelector('#toggleNavigationButton');

    this.toggleNavigationButton.addEventListener('click', this.toggleMobileNavigation());
  }

  toggleMobileNavigation() {
    this.bodyTag.classList.toggle('CLICK');
  }
}
webpack.config.js

module.exports = {
  entry: "./js/entry.js",
  output: {
      filename: "./js/bundle.js"
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['env']
          }
        }
      },
      {
        test: /\.scss$/,
        use: [
          { loader: "style-loader" },
          { loader: "css-loader" },
          { loader: "sass-loader" }
        ]
      }
    ]
  },
  resolve: {
    extensions: ['*', '.js', '.jsx'],
  },
};
问题是,当页面加载时,方法是触发
toggleMobileNavigation
,而
click
事件根本不起作用


我遗漏了什么?

这是因为您的回调包含括号,然后立即被调用,请尝试删除它们:

 this.toggleNavigationButton.addEventListener('click', this.toggleMobileNavigation);

这是因为回调包含括号,然后会立即调用,请尝试删除它们:

 this.toggleNavigationButton.addEventListener('click', this.toggleMobileNavigation);

哦,好的,真的。谢谢:)但是如果我想把参数传递给这个回调怎么办?…('click',(e)=>this.myMethod(arg1,arg2)),Total会这样做。再次感谢:)哦,好的,真的。谢谢:)但是如果我想把参数传递给这个回调怎么办?…('click',(e)=>this.myMethod(arg1,arg2)),Total会这样做。再次感谢:)