几天前我开始使用OOP,所以我没有体验过。我想知道是否有机会改变类属性的值以影响使用该类的所有对象?
示例:
function Balloon(ID){
this.ID = ID;
this.speed = 1;
}
假设我有5个Balloon对象。现在我想将所有速度值更改为2而不使用for循环。
答案 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
对象并更改速度(抱歉)