10

私は JavaScript を始めたばかりで、そのオブジェクト指向の振る舞いに戸惑っています。,メンバーを持つクラスPoint2Dを作成し、それを, ,メンバーを持つクラスで拡張しようとしていました。私が達成しようとしている動作は次のようなものです。C# で言いましょう:xyPoint3Dxyz

class Point2D
{ 
   int x, y;
   public Point2D(int x, int y) { this.x = x; this.y = y; }
}
class Point3D : Point2D
{
    int z;
    public Point3D(int x, int y, int z) : base(x, y) { this.z = z; }
}

たくさんの本を読んでいますが、探しているものが本当に見つからないようです。これが私がこれまでにやってきたことです:

function Point2D(x, y) { this.x = x; this.y = y; }
Point2D.prototype.constructor = Point2D;
function Point3D(x, y, z) { Point2D.prototype.constructor.call(this); this.z = z; }
Point3D.prototype = new A(); // see latter explanation
Point3D.prototype.constructor = B;
var p = new Point3D(10, 20, 30);

これは明らかに間違っています。

さて、次のようなことをする必要があることはわかっていますが、固定、座標、変数Point3D.prototype = new A(x, y)を使用してプロトタイプを作成したくありません。それは非常に単純でなければなりませんが、私はそれを理解していません。スーパークラスのコンストラクターを呼び出すことも、適切に動作させることもできないようです。 xyz

4

1 に答える 1