静的メソッド (static method)
JavaやPHPには静的メソッド(static method)という概念があります。Rubyではクラスメソッドに相当します。通常のメソッドはインスタンスに属しますが、静的メソッドはクラスに属します。JavaやPHPではstaticキーワードで静的フィールドを宣言できます。
Javajava
class SomeClass {static public void doSomething() {// ...}}class Main {public static void main(String[] args) {SomeClass.doSomething();}}
Javajava
class SomeClass {static public void doSomething() {// ...}}class Main {public static void main(String[] args) {SomeClass.doSomething();}}
PHPphp
class SomeClass{public static function doSomething(){// ...}}SomeClass::doSomething();
PHPphp
class SomeClass{public static function doSomething(){// ...}}SomeClass::doSomething();
JavaScriptにはJavaのような静的メソッドの機能がありません。代わりに、クラスのプロパティに後から関数を代入することで似たようなことができます。
JavaScriptjavascript
class SomeClass {}SomeClass.doSomething = function () {// ...};SomeClass.doSomething();
JavaScriptjavascript
class SomeClass {}SomeClass.doSomething = function () {// ...};SomeClass.doSomething();
TypeScriptでは、Java風の静的メソッドの書き方ができるようになっています。TypeScriptで静的メソッドを宣言するにはstaticキーワードを用います。
TypeScripttypescript
class SomeClass {static doSomething() {// ...}}SomeClass.doSomething();
TypeScripttypescript
class SomeClass {static doSomething() {// ...}}SomeClass.doSomething();
#
静的メソッドとアクセス修飾子TypeScriptの静的メソッドはアクセス修飾子を組み合わせられます。
typescript
class SomeClass {private static doSomething() {// ...}}
typescript
class SomeClass {private static doSomething() {// ...}}