手写一个实现柯里化的.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);
}
}