话不多说,直接贴代码(只是一个简单的call实现无边界判断)
let a = 1;
let obj = {
a:2
}
Function.prototype.myCall=function(context,...arr){
let targetObj = context || window;
let temporaryStorageFn = Symbol('临时存储调用myCall方法的函数');
targetObj[temporaryStorageFn] = this;
return targetObj[temporaryStorageFn](...arr);
}
function fn(b){
console.log(this.a);
console.log(b);
}
fn.myCall(obj,'b');