這也是函數(shù)柯里化的一種方法
ES3實現(xiàn)
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 實現(xiàn)
Function.prototype.bind = function (context, ...args) {
const _this = this
return function() {
return _this.apply(context,args)
}
}