Javascript 如何设置间隔、清除间隔和传递参数(计时器)

Javascript 如何设置间隔、清除间隔和传递参数(计时器),javascript,setinterval,Javascript,Setinterval,文档说明需要在setIntervalId中传递clearInterval(),因此函数必须如下所示: var logMe = setInterval(function () {...}, interval) 页面加载后,上述函数也会自动调用 如果我尝试将其放入匿名函数中,如下所示: var logMe = function (interval) { setInterval(function () { console.log("whatever"); }, int

文档说明需要在setIntervalId中传递clearInterval(),因此函数必须如下所示:

var logMe = setInterval(function () {...}, interval)
页面加载后,上述函数也会自动调用

如果我尝试将其放入匿名函数中,如下所示:

var logMe = function (interval) {
    setInterval(function () {
        console.log("whatever");
    }, interval);
};
我可以传递一个区间参数,但不能用以下方法停止它:

function stopLogMe() {
    window.clearInterval(logMe);
};

所以问题是,我可以创建一个函数“setInterval”吗?我可以传递一个参数(interval)并使用clearInterval停止它吗?

定义变量并在调用logMe函数时为其分配计时器:

var区间=2000;
var定时器=null;
函数logMe(){
计时器=设置间隔(函数(){
console.log('hello!');
},间隔);
}
函数stopLogMe(){
窗口清除间隔(计时器);
}
开始

Stop
您需要以某种方式将ID和Stop函数封装在对象或函数中。ID必须位于记录器的本地上下文中,以便在需要停止时可以访问它。它还允许您创建多个记录器,而不必使事情变得复杂

const Interval = function (fn, interval) {
  this.id = setInterval(fn, interval)

  this.clear= function () {
    clearInterval(this.id)
  }
}

// Create new logger
const myLogger = new Interval(function () {
  console.log('Log me')
}, 1000)

// Clear interval after 5 seconds.
setTimeout(myLogger.clear.bind(myLogger), 5000)

谢谢,工作起来像一个梦:)或一个数组:
var timer=[];timer.push(setInterval(function(){console.log('hello!');},interval))