コンストラクタとは、オブジェクトを作成する際に呼び出す関数やメソッドのこと。
コンストラクタの定義は、クラスベースのオブジェクト指向言語の場合、クラス内において行うが、JavaScriptは、プロトタイプベースのオブジェクト指向言語であり、クラスは存在しない。
関数にnew演算子を付けて呼び出すことで、関数がコンストラクタとして機能する。
コンストラクタは、引数を受け取ることもできる。
構文
function コンストラクタ名 () // コンストラクタを定義
{
this.プロパティ名 = 値; // プロパティを定義
this.メソッド名 = function ( 仮引数1, 仮引数2, 仮引数3, … 仮引数N ) { // メソッドを定義
メソッド内処理文;
}
}
var オブジェクト名 = new コンストラクタ名(); // オブジェクトのインスタンスを作成
オブジェクト名.プロパティ名; // プロパティを呼び出す
オブジェクト名.メソッド名( 実引数1, 実引数2, 実引数3, … 実引数N ); // メソッドを呼び出す
{
this.プロパティ名 = 値; // プロパティを定義
this.メソッド名 = function ( 仮引数1, 仮引数2, 仮引数3, … 仮引数N ) { // メソッドを定義
メソッド内処理文;
}
}
var オブジェクト名 = new コンストラクタ名(); // オブジェクトのインスタンスを作成
オブジェクト名.プロパティ名; // プロパティを呼び出す
オブジェクト名.メソッド名( 実引数1, 実引数2, 実引数3, … 実引数N ); // メソッドを呼び出す
サンプル
<script type="text/javascript">
function TaxConstructor() // コンストラクタを定義
{
this.$taxRate = 0.05; // プロパティを定義
this.$taxIncludedPrice = function ( $arg ) { // メソッドを定義
return $arg * ( 1 + this.$taxRate );
}
this.$taxRate100 = function () { // メソッドを定義
return this.$taxRate * 100;
}
}
var $taxObject = new TaxConstructor(); // オブジェクトのインスタンスを作成
document.write( '税込:' + $taxObject.$taxIncludedPrice( 100 ) + '円<br />' );
document.write( '税率:' + $taxObject.$taxRate + '<br />' );
document.write( '税率:' + $taxObject.$taxRate100() + '%<br />' );
</script>
function TaxConstructor() // コンストラクタを定義
{
this.$taxRate = 0.05; // プロパティを定義
this.$taxIncludedPrice = function ( $arg ) { // メソッドを定義
return $arg * ( 1 + this.$taxRate );
}
this.$taxRate100 = function () { // メソッドを定義
return this.$taxRate * 100;
}
}
var $taxObject = new TaxConstructor(); // オブジェクトのインスタンスを作成
document.write( '税込:' + $taxObject.$taxIncludedPrice( 100 ) + '円<br />' );
document.write( '税率:' + $taxObject.$taxRate + '<br />' );
document.write( '税率:' + $taxObject.$taxRate100() + '%<br />' );
</script>
↓↓↓出力結果↓↓↓