nowcoder FED1 修改 this 指向|刷题打卡

188 阅读1分钟

nowcoder FED1 修改 this 指向|刷题打卡

本文正在参与掘金团队号上线活动,点击 查看大厂春招职位

一、题目描述

nowcoder FED1 修改 this 指向

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

输入

输出

二、思路分析:

  1. 改变函数内this的指向,考虑apply, call, bind函数

三、AC 代码:


function bindThis(f, oTarget) {
 return f.bind(oTarget);
}



function bindThis(f, oTarget) {
    return function(){
        return f.apply(oTarget,arguments);
    }
    
}

四、总结:

apply,call,bind三者的区别和联系

三者都可以改变函数的this对象指向。

三者第一个参数都是this要指向的对象,如果如果没有这个参数或参数为undefined或null,则默认指向全局window。

三者都可以传参,但是apply是数组,而call是参数列表,且apply和call是一次性传入参数,而bind可以分为多次 传入。

bind 是返回绑定this之后的函数,便于稍后调用;apply 、call 则是立即执行 。