Qui peut aider à expliquer le concept de Fuite d'arguments
<script>
Benchmark.prototype.setup = function() {
function otherFunc(a, b) {
return a + b;
}
function withArguments(x) {
var a = arguments;
return otherFunc.apply(x, Array.prototype.slice.call(a, 1));
}
function withCopy(x) {
var a = [];
var i, len = arguments.length;
for (i = 1; i < len; i += 1) {
a[i - 1] = arguments[i];
}
return otherFunc.apply(x, a);
}
Passez
arguments
给任何方法被称为leaking arguments
withArguments
不会被V8优化,withCopy
Ce type de méthode est recommandé pour une utilisation dans un environnement en ligne, même si elle est un peu lourde.