class start {
constructor() {
this.button = document.querySelector("button");
this.info();
}
info() {
this.startClick();
}
startClick() {
this.button.addEventListener("click", () => {
console.log("1");
console.log("-----");
this.info();//回调
//第一次点击输出一次结果
//输出:1
//输出:-----
//第二次点击则是原先结果的双倍
//输出:1
//输出:-----
//输出:1
//输出:-----
//第二次点击为什么会输出两次?
})
}
}
new start;
删除startClick里的:this.info();//回调
info调用startClick,而startClick又调用info,导致相互调用,事件被订阅多次
因为你是 this.button.addEventListener
每点1次都加载了一个匿名函数。
把这些代码写在 constructor 里面