[英]How to set a lot a class properties from an object with the same property names?
[英]How to add new properties to class constructor, if there are exist same param names?
我正在尝试制作 object: Cube { length: 1, surfaceArea: 6, volume: 1 } 但它现在可以工作了,因为 class 具有相同的参数。 如果我删除“set surfaceArea ...”,构造函数会起作用。 我需要一个 class,它可以分配两个参数,如果你有另一个的话。 所以我坚持第一步。 `
class Cube {
constructor(length) {
this.length = length;
this.surfaceArea = length ** 2 * 6;
this.volume = length ** 3;
}
set surfaceArea (value) {
}
get surfaceArea () {
}
set volume (value) {
}
get volume () {
}
}
var cube = new Cube(1);
console.log(cube)
`
如何构建这个 class。
你所拥有的问题是你有什么都不做的设置器和什么都不做的吸气器。 所以this.surfaceArea = ___
是一个空操作,如果您从surfaceArea
属性读取,您将始终得到undefined
( surfaceArea
getter 的隐式返回值)。 (这两者对于volume
也是如此。)
您必须:
如果您决定将值存储在某处,您有几个存储位置的选项:公共属性或私有字段。 您还需要将length
设置为访问器属性而不是像现在这样的数据属性,否则为length
分配不同的值会使您的surfaceArea
和volume
不正确。 (这样做意味着你需要一个地方来存储length
,因为如果length
属性本身是一个访问器,你需要在其他地方保存它的当前值。)
如果您决定在每次访问surfaceArea
或volume
时都进行计算,请删除它们的 setter 并且不要在构造函数中分配给surfaceArea
或volume
(因为它们完全是动态的,从length
派生)。
我故意不在此答案中包括代码,因为我怀疑这是某种 class 作业或类似的作业,期望您编写代码。 因此,我将指导您如何做到这一点。 更多相关信息: 我如何提问和回答家庭作业问题?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.