[英]I have some instances of a class and I pushed them into an array. Can I loop through the array and update the price of all the array objects?
I have a parent constructor like this:我有一个这样的父构造函数:
let list = [];
class Pictures {
constructor(price, title) {
this.price = price;
this.title = title;
list.push(this)
}
updatePrice(price_increase) {
this.price = this.price * price_increase / 100 + this.price
return this.price
}
}
I also have two child classes that inherit from the Pictures(Parent) class我还有两个继承自 Pictures(Parent) class 的子类
class Photograph extends Pictures {
constructor(photographer, camera, aperture, contrast, price, title) {
super(price, title);
this.price = price;
this.title = this.title;
this.photographer = photographer;
this.camera = camera;
this.aperture = aperture;
this.contrast = contrast;
}
alterContrast(new_contrast) {
this.contrast = new_contrast;
}
toString() {
return `Photographer: ${this.photographer}, Camera: ${this.camera},
Aperture: ${this.aperture}, Contrast: ${this.contrast}`;
}
}
And:和:
class Painting extends Pictures {
constructor(artist, type, owner, title, price) {
super(price, title);
this.price = price;
this.title = title;
this.artist = artist;
this.type = type;
this.owner = owner;
}
printProvenance() {
}
toString() {
return `Artist: ${this.artist}, Type: ${this.type}, Owner: ${this.owner}`;
}
}
And these are the instances of the classes这些是类的实例
let photo_one = new Photograph('Kyle', 'Nikon', 32, 21, 30, 'Sunset')
let photo_two = new Photograph("Maya", "Sony XPR", 100, 23, 100.00, "Festival of Color");
I pushed all of the instances to the "list" array in the parent constructor.我将所有实例推送到父构造函数中的“列表”数组。 Is it possible to loop through the array and use the
updatePrice
method in the Pictures
class to update the price value of all objects?是否可以循环遍历数组,使用
Pictures
class中的updatePrice
方法更新所有对象的价格值?
Yes, you can, just use.map, .forEach or for loop是的,你可以,只需使用 .map、.forEach 或 for 循环
list.map((item) => {
item.updatePrice(1000)
})
But I can recommend to store 'list' inside class.但我可以建议将“列表”存储在 class 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.