我几天前开始OOP,所以我没有经验。我想知道是否有机会更改类属性的值以影响使用该类的所有对象?
例子:
function Balloon(ID){
this.ID = ID;
this.speed = 1;
}
假设我有 5 个气球对象。现在我想在不使用 for 循环的情况下将它们的所有速度值更改为 2。
我几天前开始OOP,所以我没有经验。我想知道是否有机会更改类属性的值以影响使用该类的所有对象?
例子:
function Balloon(ID){
this.ID = ID;
this.speed = 1;
}
假设我有 5 个气球对象。现在我想在不使用 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;
})();
问题是现在所有的气球都将共享相同的速度!啊!
这根本不好......为了改变速度,你需要为它创建一个getter / setter......你真的不需要它。
所以——要同时改变所有可能Balloon
类型对象的速度,同时允许每个气球在技术上具有不同的速度,唯一的结论是去每个Balloon
对象并改变速度(对不起)