は、次のコードは、エラーがスローされます:引数が多すぎると「最大呼び出しスタックサイズを超えました」が適用されるのはなぜですか? Chromeとノードで
function noop() {}
var a = new Array(1e6)
// Array[1000000]
noop.apply(null, a)
// Uncaught RangeError: Maximum call stack size exceeded
機能に100万個の引数を渡すために悪いアイデアかもしれませんが、エラーがMaximum call stack size exceeded
の代わりである理由を誰もが説明できる理由を私は理解してより関連性の高い何か?
(場合、これは軽薄なようで、オリジナルのケースがarrayから最大数を取得する、不合理ではない方法である、Math.max.apply(Math, lotsOfNumbers)
でした。)
...関数の引数がスタックに格納されているためですか? – Bergi
さて、はい、それは私が逃していた情報の一部です:) – nrabinowitz