[英]set a getter/setter on class variable JavaScript
我有一個 class 如下所示:
export default class Car {
brand = '';
color = '';
fuel = '';
constructor(car) {
...
}
}
如何在 class 變量上設置設置器?
所以例如
export default class Car {
brand = '';
color = '';
fuel = '';
set brand(brand) {
...
}
get brand() {
return ...;
}
get color(color) {
return ...;
}
set color(color) {
...
}
}
我嘗試使用上述方法,但是它不起作用。
class Car { brand = ''; color = ''; constructor(car) { this.brand = car.brand; this.color = car.color; } set brand(val) { // It should alert Audi. alert(val); } } let car = new Car({brand: 'BMW', color: 'white'}); car.brand = 'Audi';
它不會提醒我在brand
上設置的價值。
問題在於命名約定,setter 和 public 屬性是相同的,所以在設置它時你實際上並沒有使用自定義 setter。 如果您要更改名稱,它將起作用。
class Car { _brand = ''; _color = ''; constructor(car) { this._brand = car.brand; this._color = car.color; } set brand(val) { this._brand = val; alert(val); } get brand() { return this._brand; } } let car = new Car({ brand: 'BMW', color: 'white' }); car.brand = 'Audi'; console.log(car.brand)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.