Javascript 如何实现⼀个 bind 函数
问题
Javascript 如何实现⼀个 bind 函数
答案
对于实现以下⼏个函数,可以从⼏个⽅⾯思考
不传⼊第⼀个参数,那么默认为 window改变了 this 指向,让新的对象可以执⾏该函数。那么思路是否可以变成给新的对象添加⼀个函数,然后在执⾏完以后删除?
Function.prototype.myBind = function (context) {
    if (typeof this !== 'function') {
        throw new TypeError('Error')
    }
    var _this = this
    var args = [...arguments].slice(1)
    // 返回⼀个函数
    return function F() {
        // 因为返回了⼀个函数,我们可以 new F(),所以需要判断
        if (this instanceof F) {
            return new _this(...args, ...arguments)
        }
        return _this.apply(context, args.concat(...arguments))
    }
}
更多面试题
如果你想了解更多的前端面试题,可以查看本站的WEB前端面试题 ,这里基本包涵了市场上的所有前端方面的面试题,也有一些大公司的面试图,可以让你面试更加顺利。
| 面试题 | ||
|---|---|---|
| HTML | CSS | JavaScript | 
| jQuery | Vue.js | React | 
| 算法 | HTTP | Babel | 
| BootStrap | Electron | Gulp | 
| Node.js | 前端经验相关 | 前端综合 | 
| Webpack | 微信小程序 | - | 
这些题库还在更新中,如果你有不错的面试题库欢迎分享给我,我整理后放上来;人人为我,我为人人,互帮互助,共同提高,祝大家都拿到心仪的Offer!