1

特にコンストラクターに関連するJavaScriptの醜いコードを削減したいと思います。

私は次のように定義されたベクトルを持っています:

function Vector2(X, Y) {
    this.x = 0.0;
    this.y = 0.0;

    if (X)
        this.y = Y;
    if (Y)
        this.y = Y;
}

今のところ、2つのベクトルを足し合わせるには、次のように書く必要があります。

var vector1 = new Vector2(1.0, 0.5);
var vector2 = new Vector2(4.5, 1.0);

vector1.x += vector2.x;
vector1.y += vector2.y;

多くのコンストラクターを使用するときに、コードをより美しく、読みやすくし、ファイルを小さくしたいのです。私が書きたいのは:

vector1 += vector2;

よろしくお願いします。

4

2 に答える 2

6

あなたはこれを持つことができます:

function Vector(X, Y) {
    this.x = X || 0.0; // yes, I simplified a bit your constructor
    this.y = Y || 0.0;
}
Vector.prototype.add = function(v) {
   this.x += v.x;
   this.y += v.y; 
}

そして、あなたはただしなければならないでしょう

var vector1 = new Vector(4,4);
var vector2 = new Vector(1,3);
vector1.add(vector2);
于 2012-11-29T22:02:37.673 に答える
0
vector1 += vector2;

あなたの出身言語はわかりませんが、JavaScript では演算子をオーバーライドできません。

于 2012-11-29T22:14:28.100 に答える