js传参的问题

var optimizeCb = function(func, context, argCount) {    if (context === void 0) return func;
    switch (argCount == null ? 3 : argCount) {      case 1: return function(value) {        return func.call(context, value);
      };      case 2: return function(value, other) {        return func.call(context, value, other);
      };      case 3: return function(value, index, collection) {        return func.call(context, value, index, collection);
      };      case 4: return function(accumulator, value, index, collection) {        return func.call(context, accumulator, value, index, collection);
      };
    }    return function() {      return func.apply(context, arguments);
    };
  };

我不太理解optimizeCb只传入了3个参数,但是里边的判断语句像下边这句

case 4: return function(accumulator, value, index, collection) {    return func.call(context, accumulator, value, index, collection);
};

这个内部函数的accumulator, value, index, collection这些参数是从哪里来的呢?


慕田峪4524236
浏览 493回答 1
1回答

德玛西亚99

它返回的是一个函数本身,这个返回的函数肯定是要拿到别的地方运行的,这些参数当然就是运行的时候输入的啦。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript