nowcoder FED1 修改 this 指向|刷题打卡
本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
一、题目描述
封装函数 f,使 f 的 this 指向指定的对象
输入
输出
二、思路分析:
- 改变函数内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 则是立即执行 。