手写bind,我这样可以吗?

来源:6-5 作用域相关的面试题 - part1

香饽饽0

2021-04-12

Function.prototype.myBind = function(ctx, ...rest) {
    return (...innerRest) => {
        return this.apply(ctx, [...rest, ...innerRest])
    }
}
function fn(...rest) {
    console.log(this, rest);
}

fn.myBind({a : 1}, 1 ,2)(3, 4)
// 输出: {a: 1} (4) [1, 2, 3, 4]
写回答

1回答

双越

2021-04-12

功能是没问题。

不过,你用了 apply 和 ES6 的解构语法。你想,一般情况下,只要支持  apply 和 ES6 的解构语法 ,那它也肯定支持 bind ,对吧?

所以,你的这种方式,写出来没有真实的应用场景。

0
1
香饽饽0
非常感谢!那还是采用视频里的写法
2021-04-12
共1条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程