lengthプロパティ

広告

Functionクラスのlengthプロパティは関数定義で宣言された引数の数を取得するのに使用します。

関数定義で宣言された引数の数を返します。

lengthプロパティを参照することで関数定義で宣言されている引数の数を取得できます。

次の例を見て下さい。

function plus(num1, num2){
  return num1 + num2;
}

var num = plus.length;  // 2

関数定義で宣言されている変数は2つのため、lengthプロパティは2を返します。

またArgumentsクラスのcalleeプロパティを使うことで関数の中でもlengthプロパティを参照することができます。

function plus(num1, num2){
  alert(arguments.callee.length);  // 2

  return num1 + num2;
}

var n = plus(10, 8);

このようにFunctionクラスのlengthプロパティは関数の中及び外で参照することができます。関数の中で参照した場合、関数に実際に渡されてきた引数の数ではなくあくまで関数の定義の時に宣言された引数の数であることに注意して下さい。(「Argumentsクラス」も参照して下さい)。

サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script2_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

function plus(num1, num2){
  print("Function.length = " + arguments.callee.length);
  print("Arguments.length = " + arguments.length);

  return num1 + num2;
}

document.write("<p>");

plus(25, 8, 14);

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p2-1

( Written by Tatsuo Ikura )