Ben StackOverflow'daki aşağıdaki soruya geldi: How many parameters are too many?JavaScript'te kaç tane parametre var?
Bu JS fonksiyonunun parametrelerinin sayısına uygulanan pratik bir sınırı vardır, beni düşündürdü?
test(65536); // okay
test(65537); // too many
function test(n) {
try {
new Function(args(n), "return 42");
alert(n + " parameters are okay.");
} catch (e) {
console.log(e);
alert(n + " parameters are too many.");
}
}
function args(n) {
var result = new Array(n);
for (var i = 0; i < n; i++)
result[i] = "x" + i;
return result.join(",");
}
Ancak ilginç olan hata mesajı sınırı 65535 parametreler olduğunu söylüyor olmasıdır: Yani
SyntaxError: Too many parameters in function definition (only 65535 allowed)
, iki soru var:
- Neden bu tutarsızlık? Dil uygulamalarında birebir hata mı var?
- ECMAScript standardı bu sınırı işlev parametrelerine dayandırır mı?
Bu javascript http://stackoverflow.com/questions VM çalıştıran bağlıdır/22747068/is-there-a-max sayısı-arguments-javascript-functions-kabul edebilir – Noctisdark
@Noctisdark Firefox'ta ortaya çıkar, işlev parametrelerindeki 65535 sınırına uyulur. IE'yi test edemiyorum çünkü Linux kullanıyorum. Opera şu anda sadece Google Chrome tarafından kaputun altında olduğundan, Chrome'un yaptığı gibi davrandığını varsayıyorum. –
Burada büyük bir fark yaratması değil, aynı zamanda bir dizi desteklediği maksimum eleman sayısıyla sınırlandırıldığından, test kusurludur. –