クラスを作ろう! (5/5)
作成:2016-08-06 09:04
更新:2016-08-06 09:04
更新:2016-08-06 09:04
■クラスプロパティとクラスメソッド
ここまでサンプルで作ったプロパティやメソッドは、すべてnewでインスタンスを作って利用するものでした。プロパティなどは各インスタンスごとに値を保管しておくことができます。
が、時には「そのクラスのインスタンスすべてで同じ値が得られるようにしたい」ということもあります。こんな時に用いられるのが「クラスプロパティ」というものです。これはインスタンスではなく、クラスに値を保管するプロパティです。
同様に、クラスから直接呼び出すことのできるメソッドというのも作れます。これは「クラスメソッド」と呼びます。
これらの作り方は簡単。プロパティやメソッドの冒頭に「static」とつけるだけです。これで、そのプロパティやメソッドはクラスに所属するようになります。
クラスプロパティ、クラスメソッドは、インスタンスを作らないため、呼び出す際には「クラス.プロパティ」というようにクラスを指定します。またクラスメソッドでは、(クラスで動きますから)thisでインスタンスを指定したりはできませんので注意してください。
では、下に簡単なサンプルをあげておきましょう。ここでは、消費税計算のクラスを作ってみました。計算というのは、必要な値と計算式があればいいわけで、インスタンスなどを作らずクラスから直接呼び出せたほうが便利です。こうしたものは、クラスメソッドとして用意したほうが使いやすいのです。
が、時には「そのクラスのインスタンスすべてで同じ値が得られるようにしたい」ということもあります。こんな時に用いられるのが「クラスプロパティ」というものです。これはインスタンスではなく、クラスに値を保管するプロパティです。
同様に、クラスから直接呼び出すことのできるメソッドというのも作れます。これは「クラスメソッド」と呼びます。
これらの作り方は簡単。プロパティやメソッドの冒頭に「static」とつけるだけです。これで、そのプロパティやメソッドはクラスに所属するようになります。
クラスプロパティ、クラスメソッドは、インスタンスを作らないため、呼び出す際には「クラス.プロパティ」というようにクラスを指定します。またクラスメソッドでは、(クラスで動きますから)thisでインスタンスを指定したりはできませんので注意してください。
では、下に簡単なサンプルをあげておきましょう。ここでは、消費税計算のクラスを作ってみました。計算というのは、必要な値と計算式があればいいわけで、インスタンスなどを作らずクラスから直接呼び出せたほうが便利です。こうしたものは、クラスメソッドとして用意したほうが使いやすいのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
1 2 3 4 5 6 7 8 9 10 | class MyObject { static tax:number = 0.03; static calc(price:number):number { return parseInt(price + price * MyObject.tax); } } document.write( '<h1>金額:' + MyObject.calc(12300) + '</h1>' ); |
※関連コンテンツ