前の記事では、JavaScript のデフォルトのパラメーターについて説明しました。この記事では、JavaScript の引数パラメーター オブジェクトについて説明します。
以下の例の関数では、渡されたさまざまなパラメータに従ってさまざまな処理を行うにはどうすればよいでしょうか?
function addAll() {
// ここで何をしましょうか?
}
// 6 を返す必要があります
addAll(1, 2, 3);
// 10 を返す必要があります
addAll(1, 2, 3, 4);
幸いなことに、JavaScript には上記の状況を処理できる引数オブジェクトがあります。引数オブジェクトは配列のようなオブジェクトです。引数オブジェクトについて詳しく知りたい場合は、ここをクリックして、引数オブジェクトを使用して上記の例を変更します。
function addAll() {
var sum = 0;
for (var i = 0; i < argument.length; i ) {
sum = 引数[i];
}
合計を返します;
}
// 6 を返します
addAll(1, 2, 3);
// 10 を返します
addAll(1, 2, 3, 4);
引数オブジェクトは配列のようなオブジェクトであると上で述べました。それをテストしてみましょう:
function getName() {
console.log(Array.isArray(arguments));
}
// false を出力します
getName("ベンジャミン");
上記のテスト結果は次のように表示されます:
これは配列オブジェクトではないのですが、配列オブジェクトとの違いは何でしょうか?詳細については、ここをクリックしてください。
次の例を実行するとエラーがスローされます:
function sortArgs () {
// Uncaught TypeError: unknown は関数ではありません
並べ替え済み = argument.sort()
並べ替えて返します;
}
sortArgs();
次のように、配列のようなオブジェクトを配列オブジェクトに変換できます。
function sortArgs () {
// 引数オブジェクトを実数の配列に変換します
var args = [].slice.call(arguments);
// これでうまくいきます!
ソート済み = args.sort()
並べ替えて返します;
}
//[1, 2, 3] を出力します
console.log(sortArgs(1,3,2));
この記事が役に立ったと思われる場合は、それを必要とするより多くの人に転送したいと考えています。記事が不適切な場合は、修正するようメッセージを残してください。