gpt4 book ai didi

javascript - 动态更改受类函数影响的类变量

转载 作者:行者123 更新时间:2023-11-30 15:39:02 26 4
gpt4 key购买 nike

考虑一个包含一组其他对象的类。

function Food= (){
this.apples = 8;
this.orange = 6;
this.peach = 3;
}

现在,我可以创建一个添加函数。

Food.prototype.add(food){
this.apple += food.apple;
this.orange+=food.orange;
this.peach+=food.peach;
}

但是,如果我想动态地想在食物中添加另一个东西,而 food.prototype.add 也会添加这个东西怎么办?

第一个问题是,有没有一种简单的方法可以将类中的所有对象相加?

第二个问题是:我可以按如下方式编写代码。

function Food = (){
this.apples = 8;
this.orange = 6;
this.peach = 3;
this.addArray = [];
this.addArray.push(this.apples);
this.addArray.push(this.orange);
this.addArray.push(this.peach);
}

Food.prototype.add(food){
for (i=0, i<this.addArray.length, i++){
this.addArray[i]+=food.addArray[i];
}
}

这样,如果我想将蜗牛添加到我想要添加的东西中,我可以简单地将它添加到 addArray 中。

有什么方法可以制作类似的 addSet 或 addObject。因此,我可以拥有一个带名称的集合或对象,而不是拥有带索引的数组?

最佳答案

我想你要找的是

function Food() {
this.apples = 8;
this.orange = 6;
this.peach = 3;
this.addArray = ["apples", "orange", "peach"];
}

Food.prototype.add = function(food) {
for (var i=0, i<this.addArray.length, i++) {
this[this.addArray[i]] += food[this.addArray[i]];
}
};

但是,如果您要动态添加任意水果,我怀疑这是个好主意。作为扩展类的简单方法,是的,但除此之外,您最好使用适当的 Map。 .

关于javascript - 动态更改受类函数影响的类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com