クラスを作ろう! (2/5)
作成:2016-08-06 08:54
更新:2016-08-06 08:54
更新:2016-08-06 08:54
■コンストラクタについて
プロパティをいくつもクラス内に用意するようになると、インスタンスを作成してから1つ1つのプロパティを設定するのがかなり煩わしくなってきます。こうした場合、クラスに「コンストラクタ」を用意しておくことで、簡単にプロパティを初期化できます。
コンストラクタというのは、いわゆるJavaScriptの「コンストラクタ関数」とは違うものです。これはクラス内に用意する特殊な役割を持ったメソッドです。このコンストラクタは、インスタンス作成時に移動的に呼びだされ、そのインスタンスに保管されている値などの初期化を行います。
このコンストラクタは以下のように記述をします。
引数には、プロパティに設定する値などを用意しておきます。こうして引数から値を渡されたら、それを自身のプロパティに設定しておけばいいのです。
では、先ほどのサンプルを修正し、コンストラクタで名前を設定するようにしてみましょう。下のリスト欄がそのサンプルです。ここではコンストラクタを用意し、そこでnameプロパティの値を設定しています。
この部分ですね。後は,newでインスタンスを作成する際、きちんと引数を用意して渡してやればいいだけです。
これで、"Taro"がインスタンス内のnameに設定されます。プロパティが2つも3つもあったなら、コンストラクタの引数を2つ、3つと用意しておけばいいのです。
コンストラクタというのは、いわゆるJavaScriptの「コンストラクタ関数」とは違うものです。これはクラス内に用意する特殊な役割を持ったメソッドです。このコンストラクタは、インスタンス作成時に移動的に呼びだされ、そのインスタンスに保管されている値などの初期化を行います。
このコンストラクタは以下のように記述をします。
constructor( 引数 ){
……初期化処理……
}
引数には、プロパティに設定する値などを用意しておきます。こうして引数から値を渡されたら、それを自身のプロパティに設定しておけばいいのです。
では、先ほどのサンプルを修正し、コンストラクタで名前を設定するようにしてみましょう。下のリスト欄がそのサンプルです。ここではコンストラクタを用意し、そこでnameプロパティの値を設定しています。
constructor(n:string){
this.name = n
この部分ですね。後は,newでインスタンスを作成する際、きちんと引数を用意して渡してやればいいだけです。
var obj: MyObject = new MyObject("Taro");
これで、"Taro"がインスタンス内のnameに設定されます。プロパティが2つも3つもあったなら、コンストラクタの引数を2つ、3つと用意しておけばいいのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
class MyObject { name:string; constructor(n:string){ this.name = n; } print():string { let msg:string = '<h1>My name is ' + this.name + '.</h1>' return msg; } } var obj: MyObject = new MyObject("Taro"); document.write(obj.print());
※関連コンテンツ