js自定义call方法来加深对this指向的认识
因为调用方式基本如下:
fn.myCall(null,arg)
所以在myCall函数中的this指向调用它的fn,在myCall函数中首先将this的值保存下来,然后将要改变的this的的绑定的值的某一个属性设置为这个fn的值然后调用这个fn函数,再之后再删除这个fn函数
(Function.prototype as any).myCall = function(context = globalThis, ...args) {
if (typeof this !== "function") {
throw new TypeError("not funciton");
}
// 为content添加一个临时对象fn,辅助调用this(函数)
context.fn = this
let res = context.fn(...args)
d
共有 0 条评论