誰可以幫忙解釋一哈 Leaking 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);
}
傳遞
arguments
給任何方法稱為leaking arguments
withArguments
不會被V8優化,withCopy
那種 建議線上環境使用,雖然囉嗦。