手写bind

修改 this 指向

http://www.nowcoder.com/questionTerminal/a616b3de81b948fda9a92db7e86bd171

function bindThis(f, oTarget) {
    let args = Array.prototype.slice.call(arguments, 2);
    return function(){
        return f.apply(oTarget, Array.prototype.slice.call(arguments).concat(args));
    }
}
全部评论
请问call(arguments, 2); 是什么意思呀
点赞 回复 分享
发布于 2021-03-23 19:01
return f.apply(oTarget, Array.prototype.slice.call(arguments).concat(args)); 这一句concat那里反了吧,应该是: return f.apply(oTarget, args.concat(Array.prototype.slice.call(arguments))); 您写的是手写bind,不是这个题目的要求吧。这题目描述的太简洁了,应该详细描述一下前提条件和要求的结果。三言两语的题目太容易引起误解了。
点赞 回复 分享
发布于 2021-03-31 18:32
既然都用了bind 直接返回 f.bind(oTarget) 不行么
点赞 回复 分享
发布于 2021-05-15 07:47
用Apply感觉就没有什么意义了
点赞 回复 分享
发布于 2021-06-02 22:20

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
51 收藏 评论
分享
牛客网
牛客企业服务