classAのコンストラクタで作成した変数をClassBに継承して使用したい。


JavaScriptでClassAで使用した変数をClassBでも使用するにはどのようにコードを書いたら良いでしょうか？

[code]

    class A {
        constructor {
            this.A
        }
    
    }
    
    class B {
        constructor {
            this.B
        }
    
        method {
            //こういった感じでclassBでclassAのコンストラクタ変数を使用したい。
            console.log(this.A);
        }
    }
    
[/code]

## classAとclassBの関係性

フラグ機能を作りたくて、classAで初期化された値があって、それをclassBでの処理・実行と共に変更を加えたいと思ってます。ClassBにflagを作成すると処理と共に初期化されてしまいます。それを回避出来たらいいんですが、現状思い付けないのでこの方法を取ろうと考えています。




継承先はextendsを記載し、かつコンストラクタでsuper()を呼び出します。

[code]

    class Mover {
        constructor(x, y, imgFileName, imgOffsetX, imgOffsetY) {
            this.x = x;
            this.y = y;
            this.img = new Image();
            this.img.src = imgFileName;
            this.imgOffsetX = imgOffsetX;
            this.imgOffsetY = imgOffsetY;
            this.collisions = [];
            this.moveX = 0;
            this.moveY = 0;
        }
        ...
    }
    
    class Player extends Mover {
        constructor(x, y, imgFileName, imgOffsetX, imgOffsetY) {
            super(x, y, imgFileName, imgOffsetX, imgOffsetY);
            this.collisions.push(new Collision(-10, 0, 16));
            this.collisions.push(new Collision(+16, 0, 16));
            this.isJumping = false;
        }
        ...
    }
    
[/code]

速度に問題がない場合、テストしやすいように以下のルールを徹底しておくと良いでしょう  
・クラスが使用する別のクラスは、自分でnewせずコンストラクタの引数で受け取る（DI）  
（上記では、Collisionクラスを勝手にnewしてしまっているので、厳密には悪い例です）  
・上記の量が増えてくるとコンストラクタでコンストラクタが…となってくるので、  
適当なタイミングでDIコンテナの導入を考えましょう

