gpt4 book ai didi

javascript - Underscore.js 为什么使用 "switch' 而不是 "for loop"来处理案例

转载 作者:行者123 更新时间:2023-11-30 14:36:29 24 4
gpt4 key购买 nike

<分区>

我正在尝试学习 underscorejs 源代码。以上是 underscore.js 源代码 VERSION = '1.9.0' 的代码片段。如您所见,switch block 和 for 循环:

var restArguments = function(func, startIndex) {
startIndex = startIndex == null ? func.length - 1 : +startIndex;
return function() {
var length = Math.max(arguments.length - startIndex, 0),
rest = Array(length),
index = 0;
for (; index < length; index++) {
rest[index] = arguments[index + startIndex];
}
switch (startIndex) {
case 0: return func.call(this, rest);
case 1: return func.call(this, arguments[0], rest);
case 2: return func.call(this, arguments[0], arguments[1], rest);
}
var args = Array(startIndex + 1);
for (index = 0; index < startIndex; index++) {
args[index] = arguments[index];
}
args[startIndex] = rest;
return func.apply(this, args);
};
};

为什么作者要在switch中单独处理startIndex [0,1,2]的情况。

是否因为在这些情况下必须运行循环以及运行如此小的循环不必要的复杂性?如果这就是为什么作者只选择这 3 个案例的原因,为什么不选择 [0,1,2,3]。

他只选择了这 3 个是有原因的还是只是一个选择。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com