一般来说 定时器里面的回调函数中this是window 这里回调函数不是箭头函数哦
const f={
name:'11',
sayhi(){
console.log(this)
},
wait(){
setTimeout(function(){
console.log(this)
});
}
}
f.wait()
输出的不是f对象 而是Timeout {
_idleTimeout: 1,
_idlePrev: null,
_idleNext: null,
_idleStart: 30,
_onTimeout: [Function (anonymous)],
_timerArgs: undefined,
_repeat: null,
_destroyed: false,
[Symbol(refed)]: true,
[Symbol(kHasPrimitive)]: false,
[Symbol(asyncId)]: 2,
[Symbol(triggerId)]: 1
}
如果输出f对象是这样的{ name: '11', sayhi: [Function: sayhi], wait: [Function: wait] }
[手写动画最小时间间隔设置]
建议最小时间间隔为0.1-0.3s
多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms
为了浏览器的渲染和用户体验的话,最小设置0.1-0.3s最佳
settimeout的最小时间间隔一般来说最小就是4ms
Firefox中定义的最小时间间隔(DOM_MIN_TIMEOUT_VALUE)是10毫秒,HTML5定义的最小时间间隔是4毫秒。