1

98 阅读1分钟
一般来说 定时器里面的回调函数中thiswindow 这里回调函数不是箭头函数哦
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毫秒。