FED1 修改 this 指向(中等)

通过率:40.23%

题目链接

描述

封装函数 f,使 f 的 this 指向指定的对象

示例1

输入:无
输出:无

参考资料

bind,call,apply的区别

  • 当我们使用一个函数需要改变 this 指向的时候才会用到 call,apply,bind
  • 如果你要传递的参数不多,则可以使用 fn.call(thisObj, arg1, arg2 ...)
  • 如果你要传递的参数很多,则可以用数组将参数整理好调用 fn.apply(thisObj, [arg1, arg2 ...])
  • 如果你想生成一个新的函数长期绑定某个函数给某个对象使用,则可以使用 const newFn = fn.bind(thisObj); newFn(arg1, arg2...)
  • call,apply,bind不传参数自动绑定在 window
/* 用bind */
function bindThis(f, oTarget) {
    return f.bind(oTarget)
}

/* 用call */
function bindThis(f, oTarget) {
    return function() {
        return f.call(oTarget, ...arguments)
    }
}

/* 用apply */
function bindThis(f, oTarget) {
    return function() {
        return f.apply(oTarget, arguments)
    }
}

 

 

posted @ 2021-10-20 21:47  自在逍遥处  阅读(28)  评论(0编辑  收藏  举报