JavaScriptでOOPに1つの問題があります。次の例では、newObj.position.x
を増やした場合、newObj.x
は、this.x = this.position.x
を書き込んだにもかかわらず、増加しません。なぜそれが起こっているのか教えていただけますか?あなたはnew
とObject
を作成しているときにconsole.logのJavaScriptの新しいオブジェクト内部関数
ClassOne = function(x, y)
{
\t this.x = x;
\t this.y = y;
};
ClassTwo = function(x, y, w, h)
{
\t this.x = x;
\t this.y = y;
\t this.w = w;
\t this.h = h;
\t
\t this.position = new ClassOne(this.x, this.y);
\t this.x = this.position.x;
\t this.y = this.position.y;
}
var newObj = new ClassTwo(10, 20, 30, 40);
for (var i = 0; i < 15; i++)
{
\t newObj.position.x++;
\t console.log(newObj.x);
}
結果は10、10、10、10、10 ...
newObj.position.x ++; newObj.position.xを増やすだけです... –
クラスTwoのxは、構築中に一度だけ設定されます –