2

私が持っているとしましょう

function Point(x, y)
{
    this.X = x;
    this.Y = y;
}

クラスPoint2が必要です。thisthisを使用して、次のコードを思いつきました。

function Point2(x, y)
{
    this.X = x; // <-
    this.Y = y; // <-
}

Point2.prototype = new Point();
Point2.prototype.constructor = Point;

ただし、多くの変数または多くの継承がある場合、プロパティの割り当てを常に繰り返したくありません ( の行を参照して<-ください。

Point2.call(this);

、エラーが表示されます: 最大コール スタック サイズを超えました。

では、コード全体を繰り返す代わりに、同じ着信値で親コンストラクターを呼び出す方法はありますか?

4

1 に答える 1

4

独自のコンストラクターではなく、親コンストラクターを呼び出す必要があります。

Point.call(this, x, y);

引数が常に同じ場合は、次のように書くこともできますPoint.apply(this, arguments);

于 2013-08-19T20:27:22.667 に答える