如何解决使用数组在 Javascript 类中将属性组合在一起,而不是将每个属性都列为自己的属性
我是 javascript 的新手(学习的第 2 周)所以如果这是一个愚蠢的问题,我很抱歉!我找到了两种方法来做我正在尝试做的事情,并且需要一些关于第二种方法是否可以接受的建议。
我知道一个类可以具有采用数组的属性,其中该数组列出了该属性的多个值。但是,如果我有一个具有可分组属性的类(与对象的同一方面相关),我是否可以将它们组合成一个带有数组的属性,而不是将每个属性都列为一个属性?
因此,如果我有一个带有 Tent
属性的 mainUses
类,我知道我可以将一个新实例传递给一个具有多种主要用途的帐篷数组。
class Tent {
constructor(mainUses){
this.mainUses = mainUses;}};
const myTent = new Tent (["Backpacking","Mountaineering","Bikepacking"]);
如果我还有帐篷的最小包装重量、标准重量和最大重量,我可以这样做:
class Tent {
constructor(mainUses,minWeight,standardWeight,maxWeight){
this.mainUses = mainUses;
this.minWeight = minWeight;
this.standardWeight = standardWeight;
this.maxWeight = maxWeight;}};
const myTent = new Tent (["Backpacking","Bikepacking"],"2kg","2.2kg","2.4kg");
但是如果我像这样将 3 个权重组合成一个“超级属性”(为了更好的描述)呢:
class Tent {
constructor(mainUses,weight){
this.mainUses = mainUses;
this.weight = weight;}};
然后向“超级属性”传递一个列出 3 个权重的数组:
const myTent = new Tent (["Backpacking",["2kg","2.4kg"]);
然后,为了仍然可以轻松访问它们,请向类添加注释,列出在我创建新实例或想要访问某些内容时要使用的索引。
/*minWeight [0],standardWeight [1],maxWeight[2]*/
这样 myTent.minWeight
就会变成 myTent.weight[0]
。
有什么理由我不应该这样做吗?它似乎工作我正在尝试做的事情,但我担心像这样使用它是糟糕的形式/hacky/错误的其他原因?
我试图搜索以这种方式使用它的示例,但我真的不知道如何简洁地描述它以进行有效搜索。我使用的示例并没有很好地展示它,但是在我有很多属性可以分组到单个数组中的情况下,它最终要简单得多。我觉得它在语义上......不知何故?
解决方法
你可以这样做,但如果你在同一个数组中有不同的属性,最好使用关联数组。在我看来,它会更好地组织起来。它也将更加面向对象,如果您添加更多属性,它仍然可以。
const myTent = [
{ item: 'Backpacking',weight: '2kg',},{ item: 'Mountaineering',weight: '2.2kg',{ item: 'Bikepacking',weight: '2.4kg',];
,
出于此目的,通常使用对象而不是数组,因为在命名时更容易不混淆哪个元素意味着什么。
// Weight property
{
min: 2,standard: 2.2,max: 2.4,unit: 'kg',}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。