手写简单.bind()实现

手写一个实现柯里化的.bind()

柯里化:《函数柯里化小结》
柯里化:前端开发者进阶之函数柯里化Currying
bind():Javascript中bind()方法的使用与实现

函数柯里化(个人理解):一个函数只接收单个参数,但是函数层层嵌套并return,可实现预设参数(参数复用)、提前返回(理解不是很透彻)、延迟执行(ES5的bind())。

// 实现一个函数柯里化的原生bind方法  
Function.prototype._bind = function (context) {
  let self = this;
  let firstArg = Array.prototype.slice.call(arguments,1);
  return function () {
    let secArg = Array.prototype.slice.call(arguments);
    let finishArg = firstArg.concat(secArg);
    return self.apply(context,finishArg);
  }
}

你可能感兴趣的:(手写简单.bind()实现)