这是记录前端面试的话术集锦第六篇博文——高频考点(事件机制 & 跨域 & 存储机制 & 浏览器缓存等),我会不断更新该博文。❗❗❗
1. ⼿写 call、apply 及 bind 函数
⾸先从以下⼏点来考虑如何实现这⼏个函数:
-
不传⼊第⼀个参数,那么上下⽂默认为
window -
改变了
this指向,让新的对象可以执⾏该函数,并能接受参数
- 实现
call:
-
⾸先
context为可选参数,如果不传的话默认上下⽂为window -
接下来给
context创建⼀个fn属性,并将值设置为需要调⽤的函数 -
因为
call可以传⼊多个参数作为调⽤函数的参数,所以需要将参数剥离出来 -
然后调⽤函数并将对象上的函数删除
Function.prototype.myCall =