推定 -
function noname(a, b) {
//code
}
そして私は与える-
noname(4,5,6,7);
それではどうなりますか?
追加のパラメータは単に無視されます。
ただし、これらはarguments
疑似配列の一部として、たとえば、arguments[2]
として利用できますarguments[3]
。
必要な変数よりも少ない変数を指定すると、欠落している変数はになりますundefined
。
Alnitakが言ったように、彼らはundefined
彼らを拘束するものが何もないので、述べられていない限り、彼らarguments[i]
はなります:使用されます`。
.length
最初に、すべての関数で使用可能なメソッドを使用して、関数が指定した元のパラメーターの数をテストすることをお勧めします。
noname.length === 2 // in your case
これにより、追加の引数を簡単に保存できます(使用したい場合に備えて)
function noname (a, b) {
console.log('Original parameters in this function: ' + noname.length);
var additionalParameters = [];
if (arguments.length > noname.length) {
for (i = 0; i < arguments.length - noname.length; i++) {
// We need to start arguments off at index: 2 in our case
// The first 0 & 1 parameters are a, b
additionalParameters[i] = arguments[i + noname.length];
// These of course will be saved starting at 0 index on additionalParameters
}
}
console.log(additionalParameters);
}
noname(1, 2, 3, 4, 5);
</ p>