- 今天的话主要说了改变this指向的方法和页面触发的优化功能。
那先来说一下改变this指向的方法吧。
那么改变this指向的方法有好好多种,
比如说call:它是改变this指向的一个方法,具体语法就是把我们想要改变改变指向的函数调用. call(),在()里写要指向的那个函数,并且还可以在指向函数后面逗号,修改指向函数里的值。
其次就是apply:他们两的功能是一样的,基本的语法也差不多。
那还有一个就是bind:他也是改变this指向的,与前两者不同的是他返回的并不是改变指向后的函数名,而是改变后的一整个函数。那bind也是可以传参的,他的写法就是给调用函数. bind(要指向的函数 )(‘值’ )
那说完这个在说一下页面性能优化的两个功能_防抖和截流
那为了更好的理解,打个比方,防抖就是
假如我们给手机设置了闹钟在早上七点,然后我们看到以后按了延迟五分钟,他就会在等五分钟后再提示。
截流它不一样,还拿闹钟说,他只到了七点提醒你一次,不管你起没起,他也没有给你延迟五分这个功能。
换言之,就是防抖他会在固定的时间做固定的事,但是当中途有事件穿插,他会停下来,停够一个时间就继续往下执行。那截流它中途是没有办法打断的,它会按照一个固定的时间执行固定的事,不受影响。
那么最后说了一个new的实例,以及执行的原理。
首先的话他是一个以new 关键字创造的函数,最后进行执行。那么中途发生了什么?
- 新建一个空对象,并将 构造函数的原型对象赋给这个空对象
- 执行构造函数,相应参数被传入,并将this的上下文指向新创建的对象
- 如果构造函数返回了对象,就舍弃之前创建的对象