onclick不是点击一次执行一次吗?

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 里面