function Timer() { this.s1 = 0; this.s2 = 0; // 箭头函数 函数生效时所在的对象 setInterval(() => this.s1++, 1000); // 普通函数 全局作用域 setInterval(function () { this.s2++; }, 1000); // setInterval(function () { // this.s2++; // }.apply(this), 1000); // 1 ? // setInterval(function () { // this.s2++; // }.bind(this), 1000); // 3 ? } var timer = new Timer(); setTimeout(() => console.log('s1: ', timer.s1), 3100); setTimeout(() => console.log('s2: ', timer.s2), 3100);