pop()/shift()
はslice()
よりもはるかに優れています。そう、これはよりパフォーマンスする必要があります元の配列を返すpop()/ shift()メソッド
proto.wrapErrorFirst = proto.wrapErrFirst = function (fn: Function) {
const self = this;
return function (err: IPseudoError) {
if (err) {
return self.__handle(err, false);
}
try {
// remove the error-first argument
return fn.apply(this, Array.from(arguments).slice(1));
}
catch (err) {
return self.__handle(err, false);
}
}
};
:https://jsperf.com/pop-vs-slice/5
はここで)(スライスを使用して、私のユースケースだ
proto.wrapErrorFirst = proto.wrapErrFirst = function (fn: Function) {
const self = this;
return function (err: IPseudoError) {
if (err) {
return self.__handle(err, false);
}
try {
const args = Array.from(arguments);
args.shift()
return fn.apply(this, args);
}
catch (err) {
return self.__handle(err, false);
}
}
};
が、少ないコードでそれを行う方法がある場合、私は疑問に思っておそらくArray.from(引数)を呼び出さなくてもそれを行う方法でしょうか?
多分何かこのようなちょっとクレイジー:
delete arguments[0];
return fn.apply(this, arguments);
はい私は最後のアイデア(deleteを使用)が動作するとは思わない –
代わりにrestパラメータを使用できますか? "function(err:IPseudoError、... args){' – 4castle
@ 4castle私の質問は明らかではありませんが、最初の引数を引数 "array"からシフトして引数を適用する最もパフォーマンスの良い方法を探しています別の機能 –