3

推定 -

function noname(a, b) {
//code
}

そして私は与える-

noname(4,5,6,7);

それではどうなりますか?

4

2 に答える 2

9

追加のパラメータは単に無視されます。

ただし、これらはarguments疑似配列の一部として、たとえば、arguments[2]として利用できますarguments[3]

必要な変数よりも少ない変数を指定すると、欠落している変数はになりますundefined

于 2012-08-31T14:33:40.310 に答える
0

Alnitakが言ったように、彼らはundefined彼らを拘束するものが何もないので、述べられていない限り、彼らarguments[i]はなります:使用されます`。

.length最初に、すべての関数で使用可能なメソッドを使用して、関数が指定した元のパラメーターの数をテストすることをお勧めします。

noname.length === 2 // in your case

これにより、追加の引数を簡単に保存できます(使用したい場合に備えて)

jsFiddleデモ

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>

于 2012-08-31T14:42:21.253 に答える