2017-04-25 11 views
6

から静的メソッドを呼び出します。jsが、私は、静的メソッドを持つクラスを持つクラス

class User { 

constructor() { 
    User.staticMethod(); 
} 

static staticMethod() { 

} 

} 

静的メソッドのように、このようなものは、(すなわち、インスタンスせずに、現在のクラスを参照)あります。

ですから、クラス名 'User'を書く必要はありません。

+2

号は、静的メソッドでポイントを厥、彼らは、インスタンスベースではなく、**クラスは**ベースthis.constructor.staticMethodを追加することができます。 – Randy

+0

@Randy私はこれを例として使用しました。私はPHP自身のようなものを望んでいるので、クラスを参照することができます(そのインスタンスではありません) – Chris

+0

ファイルごとに1つのクラスを定義すると、 'const self = User'のような行を追加してから' self.'を使用できます。ファイル全体で – mpen

答えて

10

staticメソッド呼び出しはクラスで直接行われ、クラスのインスタンスで呼び出すことはできません されています。静的メソッドは、しばしば ユーティリティ関数を作成するために使用されます。より多くの場合

あなたは、静的メソッドを呼び出すために、この=>this.constructor.staticMethod());ような何かを行うことができます=>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

を参照してください。代わりに、このUser.staticMethodの

class StaticMethodCall { 
    constructor() { 
    console.log(StaticMethodCall.staticMethod()); 
    // 'static method has been called.' 

    console.log(this.constructor.staticMethod()); 
    // 'static method has been called.' 
    } 

    static staticMethod() { 
    return 'static method has been called.'; 
    } 
} 
1

static物事はインスタンスではなくクラスにバインドされます。クラス名を指定する必要があります。

クラスにバインドしたくない場合は、それらをグローバルにします。 MDNのドキュメントから

0

は()あなたは()

関連する問題