11_Function.call

本题考点:this

根据题目要求,实现一个仿Function.call功能的"Function._call"函数,该函数会临时修改内部this的指向并返回结果,核心步骤有:

  1. 参数默认为window
  2. 获取调用该方法的对象,将this赋给对象参数,可以任意命名
  3. 通过该对象参数临时调用函数并返回结果
  4. 最后删除对象参数的临时函数属性

参考答案

Function.prototype._call = function(target = window) {
    target['fn'] = this
    const result = target['fn']([...arguments].shift())
    delete target['fn']
    return result
}