背景 1 #239669 批量新建工作项界面,上下、左右滚动,发现界面卡住了,影响用户正常使用(详情见附件录屏) 2 需要紧急修复
核心思想:
- 箭头函数没有this,箭头函数的this是继承父执行上下文里面的this
- 如果父执行上下文也是一个箭头函数,它就只能继续向上找也就是window了
- 普通函数的this指向是调用它的那个对象
- 箭头函数无法使用 new 实例化对象 因为普通构造函数通过 new 实例化对象时 this 指向实例对象,而箭头函数没有 this 值,同时 箭头函数也没有 prototype。
时间切片的核心思想是:如果任务不能在50毫秒内执行完,那么为了不阻塞主线程,这个任务应该让出主线程的控制权,使浏览器可以处理其他任务。让出控制权意味着停止执行当前任务,让浏览器去执行其他任务,随后再回来继续执行没有执行完的任务。
所以时间切片的目的是不阻塞主线程,而实现目的的技术手段是将一个长任务拆分成很多个不超过50ms的小任务分散在宏任务队列中执行。