改变类变量的值

时间:2013-07-11 14:56:50

标签: javascript class oop object

几天前我开始使用OOP,所以我没有体验过。我想知道是否有机会改变类属性的值以影响使用该类的所有对象?

示例:

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

假设我有5个Balloon对象。现在我想将所有速度值更改为2而不使用for循环。

2 个答案:

答案 0 :(得分:4)

您可以使用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

答案 1 :(得分:0)

您需要编辑对象的本地静态变量:

var Balloon = (function(){

    var speed = null;

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

    return Balloon;

})();

问题是现在所有气球将共享相同的速度! AHH!
这根本不好......为了改变速度你需要为它创建一个getter / setter ...你真的不需要你的情况下。

所以 - 要同时更改所有可能的Balloon类型对象的速度,同时允许每个技术 的气球具有不同的速度,唯一的结论是转到每个Balloon对象并更改速度(抱歉)