手写call
function demo1() {
console.log(this.name)
}
Function.prototype.myCall = function (ctx, ...args) {
//没有指定obj的话,默认指向window
ctx = ctx || window
//定义一个函数,this指向当前调用这个方法的函数
//将方法挂载到ctx
ctx.fn = this
//调用这个函数
const result = ctx.fn(...args)
delete ctx.fn
return result
}
const obj = { name: 'qqqiu' }
demo1.myCall(obj)