Function.prototype.myCall= function(obj,...args){
const fn = Symbol('fn') // 声明一个独有的Symbol属性, 防止fn覆盖已有属性
obj = obj||window // 若没传入,则默认绑定window对象
obj[fn] = this
let result = obj[fn](...args)
delete obj.fn
return result
}
function foo(c){
console.log(this.a,c)
return c
}
let a = {
a:1,
b:2
}
console.log(foo.myCall(a,3))