簡體   English   中英

在 class 變量 JavaScript 上設置 getter/setter

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM