繁体   English   中英

更改类变量的值

[英]Changing value of class variable

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

例:

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

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

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

那么,您将需要编辑对象的局部静态变量:

var Balloon = (function(){

    var speed = null;

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

    return Balloon;

})();

问题在于,现在所有气球都会共享相同的速度! AHH!
这一点都不好……为了改变速度,您需要为此创建一个吸气剂/吸气剂……您的情况中确实不需要。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM