0

私は数日前にOOPを始めたので、経験がありません。そのクラスを使用するすべてのオブジェクトに影響を与えるために、クラス プロパティの値を変更する可能性はありますか?

例:

function Balloon(ID){
    this.ID = ID;
    this.speed = 1; 
}

5 つの Balloon オブジェクトがあるとします。そして今、for ループを使用せずにすべての速度値を 2 に変更したいと考えています。

4

2 に答える 2

5

そのために使えますprototype。以下の例を確認してください。

function Balloon(ID){
    this.ID = ID;
}

Balloon.prototype.speed = 1;

b1 = new Balloon(1);
b2 = new Balloon(10);

console.log(b1.speed); // outputs 1
Balloon.prototype.speed = 15;
console.log(b2.speed); // outputs 15, which is now also 15 for all other Balloon instances
于 2013-07-11T15:04:07.730 に答える
0

オブジェクトのローカル静的変数を編集する必要があります。

var Balloon = (function(){

    var speed = null;

    function Balloon(ID){
        this.ID = ID;
        speed = 1; 
    }

    return Balloon;

})();

問題は、すべての気球が同じ速度を共有することです! ああ!
それはまったく良くありません...そして速度を変更するには、そのためのゲッター/セッターを作成する必要があります...あなたの場合、これは本当に必要ありません。

したがって、各バルーンが技術的に異なる速度を持つことを許可しながら、可能なすべてBalloonのタイプオブジェクトの速度を同時に変更するには、唯一の結論は各オブジェクトに移動して速度を変更することです(申し訳ありません)Balloon

于 2013-07-11T15:02:00.860 に答える