// 实现apply函数的步骤 // 1.判断调用对象是否为函数 // 2.判断传入上下文是否存在,不存在设置为window // 3.将函数调用作为上下文对象的一个属性 // 5.使用上下文来调用这个方法,并保存返回结果 // 6.删除新增的属性 // 7.返回结果 Function.prototype.myApply=function(context){ // 判断调用对象是否为函数 if(typeof this!=="function"){ console.error("type err"); } // 判断是否传入上下文,如果没有设置为window context = context||window; let result = null; // 将函数调用作为上下文的一个属性 context.fn=this; // 使用上下文调用方法 result = context.fn(...arguments[1]); // 删除新增属性 delete context.fn; // 返回结果 return result; }