libro
www.tuyano.com
初心者のためのTypeScript入門

クラスを作ろう! (2/5)

作成:2016-08-06 08:54
更新:2016-08-06 08:54

■コンストラクタについて

プロパティをいくつもクラス内に用意するようになると、インスタンスを作成してから1つ1つのプロパティを設定するのがかなり煩わしくなってきます。こうした場合、クラスに「コンストラクタ」を用意しておくことで、簡単にプロパティを初期化できます。

コンストラクタというのは、いわゆるJavaScriptの「コンストラクタ関数」とは違うものです。これはクラス内に用意する特殊な役割を持ったメソッドです。このコンストラクタは、インスタンス作成時に移動的に呼びだされ、そのインスタンスに保管されている値などの初期化を行います。

このコンストラクタは以下のように記述をします。
constructor( 引数 ){
    ……初期化処理……
}

引数には、プロパティに設定する値などを用意しておきます。こうして引数から値を渡されたら、それを自身のプロパティに設定しておけばいいのです。

では、先ほどのサンプルを修正し、コンストラクタで名前を設定するようにしてみましょう。下のリスト欄がそのサンプルです。ここではコンストラクタを用意し、そこでnameプロパティの値を設定しています。
constructor(n:string){
    this.name = n

この部分ですね。後は,newでインスタンスを作成する際、きちんと引数を用意して渡してやればいいだけです。
var obj: MyObject = new MyObject("Taro");

これで、"Taro"がインスタンス内のnameに設定されます。プロパティが2つも3つもあったなら、コンストラクタの引数を2つ、3つと用意しておけばいいのです。

※プログラムリストが表示されない場合

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());

※関連コンテンツ

「初心者のためのTypeScript入門」に戻る