1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
---
title: arguments オブジェクトの使用
slug: Web/JavaScript/Guide/Using_the_arguments_object
---
<div class="onlyinclude">
<h3 id="arguments_オブジェクトの使用"><code>arguments</code> オブジェクトの使用</h3>
<p>関数の引数は配列のようなオブジェクトで管理されます。関数内では、次のようにして渡された引数を指すことができます。</p>
<pre class="eval">arguments[i]
</pre>
<p>ここで <code>i</code> は引数の順序を表す数を指します。これは 0 から始まります。関数に渡された第 1 引数は <code>arguments{{ mediawiki.external(0) }}</code> となります。引数のトータルの数は <code>arguments.length</code> で示されます。</p>
<p><code>arguments</code> オブジェクトを使用すると、宣言時の仮引数の数よりも多くの引数を使って関数を呼び出すことができます。これはその関数に渡す引数の数が前もってわかっていない場合に役立ちます。<code>arguments</code>.length を使用することで実際にその関数に渡された引数の数を特定することができます。また、<code>arguments</code> オブジェクトを使用することで各引数を扱うことができます。</p>
<p>例えば、複数の文字列を連結する関数を考えます。この関数の仮引数は、連結するアイテムを区切るのに用いる文字列のみです。この関数は次のように定義されています。</p>
<pre class="eval">function myConcat(separator) {
var result = ""; // リストを初期化する
// 引数について繰り返し
for (var i = 1; i < arguments.length; i++) {
result += arguments[i] + separator;
}
return result;
}
</pre>
<p>この関数に引数をいくつも渡すことができます。そして各引数を文字列のリストに連結します。</p>
<pre class="eval">// "red, orange, blue, " を返す
myConcat(", ", "red", "orange", "blue");
// "elephant; giraffe; lion; cheetah; " を返す
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
// "sage. basil. oregano. pepper. parsley. " を返す
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
</pre>
<p>さらなる情報については、コア JavaScript リファレンスの <a href="/ja/Core_JavaScript_1.5_Reference/Objects/Function" title="ja/Core_JavaScript_1.5_Reference/Objects/Function">Function オブジェクト</a> をご覧ください。</p>
<p><strong>JavaScript 1.3 以前のバージョン</strong><br>
arguments オブジェクトは <code>Function</code> オブジェクトのプロパティであり、次のように関数の名前を前に付けることができます。</p>
functionName.arguments{{ mediawiki.external('i') }}</div>
<p>{{ PreviousNext("JavaScript/Guide/Calling_Functions", "JavaScript/Guide/Predefined_Functions") }}</p>
|