40493

[code]

    class Test {
      foo() {
    
      }
      bar() {
    
      }
      ...
    }
    
[/code]

クラス内のメソッド1つ1つの記述量が多くなった際、クラス内で関数の宣言だけ行い、スコープ外に定義することはできますか？

[code]

    class Test {
      foo()
      bar()
    }
    
    Test.foo = { .. }
    Test.bar = { .. }
    
[/code]


CC BY-SA 3.0
2017-12-22T08:16:22.577
40478
2017-12-23T08:02:17.293
19687
question
javascript
ES6のクラス内メソッドをスコープ外に定義したい


プロトタイプにメソッドを定義すればよいと思います。

[code]

    class Test {}
    
    Test.prototype.foo = () => { ... }
    Test.prototype.bar = () => { ... }
    
[/code]

宣言にはあまり意味がありません。プロトタイプが上書きされるためです。  
例えば引数の数などが異なってもエラー等にはなりません。


CC BY-SA 3.0
2017-12-23T08:02:17.293
40493
2017-12-23T08:02:17.293
4388
40478
answer