私は JavaScript を始めたばかりで、そのオブジェクト指向の振る舞いに戸惑っています。,メンバーを持つクラスPoint2D
を作成し、それを, ,メンバーを持つクラスで拡張しようとしていました。私が達成しようとしている動作は次のようなものです。C# で言いましょう:x
y
Point3D
x
y
z
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)
を使用してプロトタイプを作成したくありません。それは非常に単純でなければなりませんが、私はそれを理解していません。スーパークラスのコンストラクターを呼び出すことも、適切に動作させることもできないようです。 x
y
z