js中bind方法的实现

这也是函数柯里化的一种方法
ES3实现

Function.prototype.bind = function (_this,args) {
    var self = this,
          oldargs= arguments;
    
    return function () {
        var args = [];
        for(var i = 1; i < oldargs.length; i++){
            args.push(oldargs[i])
        }
        for(var i = 0; i < arguments.length; i++){
            args.push(arguments[i])
        }
        return self.apply(_this, args)
    }
}

ES6 实现

Function.prototype.bind = function (context, ...args) {
  const _this = this
  return function() {
    return _this.apply(context,args)
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容