手动实现一个Function.prototype.bind

307 阅读1分钟

仅做记录:

Function.prototype.bind = function(obj) {
    let args = ([]).slice.call(arguments)
    let self = this;
    let fun = function () {
      let inArg = arguments;
      let allArgs = [];
      
      for (let i = 1; i < args.length; i += 1) {
         allArgs.push(args[i])
      }
      allArgs = [...allArgs, ...inArg];
      return self.apply(obj, allArgs)
    }
  return fun
}