如何获取setTimeOut对象并读取它里面的参数?
var timer = null;
var test = function() {
console.log(111);
}
timer = setTimeout(test, 1000);
console.log(typeof(timer));
console.log(timer);
// 结果
// number
// 1
// 111
各位,既然我将setTimeOut()函数作为对象赋给了timer,为什么timer是一个number对象。如果我想取这个setTimeOut()中的fn和wait参数,以及这个定时器启动后实际运行了多久的时间,要怎么做啊?
回复
1个回答

test
2024-07-15
setTimeout
的返回值只有一个数字,就像一个编号,这个编号唯一的作用就是用来清除延时器。
如果要保留其中的其他信息的话需要,可以自己记录下来:
var fakeSetTimeout = function(fn, duraion){
const startTime = Date.now();
const callback = fn;
return {
startTime,
callback,
duraion,
timer: setTimeout(fn, duraion)
}
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容