JavaScript function

JavaScriptでは、関数を定義して、それを呼び出すことができます。

関数の定義

function name() {
  // statements
}
function name(parameters) {
  // statements
}
name
関数の名前を指定する。
parameters
関数に渡す引数のリストを指定する。カンマで区切って、複数の引数を渡すこともできる。

JavaScriptで関数を定義する例を次に示す。

function alert_test() {
  alert("ボタンがクリックされました。");
}

関数の呼び出し

<script>
  alert_test();
</script>

HTML要素のイベント属性に指定することもできる。

<button onclick="alert_test();">ボタン</button>

無名関数

JavaScriptは無名関数を定義することができる。

function() {
  // statements
}
function(parameters) {
  // statements
}
parameters
関数に渡す引数のリストを指定する。カンマで区切って、複数の引数を渡すこともできる。

無名関数の呼び出し方法として、変数を使う方法と即時関数の2通りある。

変数を使って無名関数の呼び出しを行うには、まずfunction定義を変数に代入して、その変数を使ってfunction呼び出しを行う。

<script>
  // 関数の定義
  var f = function(p) {
    document.writeln('<p>' + p + '</p>');
  }
  // 関数の呼び出し
  f('foo');
</script>

即時関数

即時関数とは、無名関数の定義と呼び出しを同時に行う方法である。即時関数の構文は2通りある。

(function(parameters) {
  // statements
}());
((function(parameters) {
  // statements
})();
parameters
関数に渡す引数のリストを指定する。カンマで区切って、複数の引数を渡すこともできる。

即時関数のサンプルを示す。

<script>
  (function(){
    document.writeln('<p>即時関数は、functionの定義と呼び出しを同時にできます。</p>');
  }());
</script>

Functionオブジェクト

Functionは関数を表すオブジェクトである。実際のところ、JavaScriptにおける関数(function)は、すべてFunctionオブジェクトである。

コンストラクタ

Function([argument [,argument]... ,] functionBody)

プロパティ

Functionオブジェクトのプロパティ一覧
プロパティ 説明
prototype オブジェクトへの参照。オブジェクトにプロパティを作成するときに使用する。

サンプル

<script>
  function logging() {}

  logging.prototype.console = function(s) {
    console.log("info: " + s);
  };

  var f = new logging();
  f.console("Hey Diddle Diddle");
</script>