定时器中 this 指向修改实现方法和原理讲解
定时器属于全局 window ,window.setTimeout(); window.setInterval();
普通函数的调用,this 指向它的调用者,所以这也就是为什么 定时器当中的 this 指向 window 的原因。
点击一个 div 延迟改变盒子的背景色
//以下是错误是否,运行报错
<div class="box"></div>
<script>
let box = document.querySelector('.box');
box.addEventListener('click',function() {
setTimeout(function() {
this.style.backgroundColor = 'teal';
// 代码报错 由于定时器是全局的,window.setTimeout() 所以 this 指向 window 而非 box ,运行找不到 this 从而报错,可