toStringメソッド

広告

FunctionクラスのtoStringメソッドは対象のFunctionクラスのオブジェクトを文字列に変換した結果を返します。

Functionクラスのオブジェクトの文字列表現を返します。

パラメータ:
  無し
戻り値:
  Functionクラスのオブジェクトが表す配列の文字列表現

Functionクラスのオブジェクトが表す関数を文字列に変換した結果を返します。このメソッドは親クラスのObjectクラスから継承したメソッドです。

toStringメソッドは多くの環境では関数定義そのものを文字列として返す場合が多いようですが、決められた規則はないためどのような文字列が帰ってくるのかは環境に依存します。

次の例を見てください。

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

alert(plus.toString());

いくつかのブラウザで実際に確認したところ次のような文字列が返されます。

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

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

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

細かな違いはありますがいずれの場合も関数定義そのものを文字列として返してきます。

サンプルコード

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

<!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/script4_1.js">
</script>

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

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

document.write("<p>");

print(plus.toString());

var minus = function(num1, num2){return num1 - num2;};

print(minus.toString());

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

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

p4-1

( Written by Tatsuo Ikura )