![](/img/trans.png)
[英]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.