在类变量JavaScript上设置getter / setter

我有一堂课,如下所示:

export default class Car {
    brand = '';

    color = '';

    fuel = '';

    constructor(car) {
        ...
    }
}

如何在类变量上设置设置器?

所以举个例子

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

克尔日斯托夫(Krzysztof Krzeszewski)

问题在于命名约定,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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ruby中的类变量的Getter / Setter

来自分类Dev

在Javascript的继承类中声明getter / setter

来自分类Dev

JavaScript getter和setter

来自分类Dev

删除 getter/setter Javascript

来自分类Dev

使用Setter或Boolean Getter的变量

来自分类Dev

如何为指针类变量做setter和getter函数?

来自分类Dev

在公共实例上使用 getter 和 setter 来设置该类的私有实例时,会设置哪个类实例的属性?

来自分类Dev

PHP的getter和setter

来自分类Dev

java enum getter setter

来自分类Dev

Is this method a getter/setter or neither

来自分类Dev

AngularJS getter / setter

来自分类Dev

向量的getter / setter

来自分类Dev

PHP的getter和setter

来自分类Dev

getter,setter和loops

来自分类Dev

Getter 和 Setter 方法

来自分类Dev

我如何访问 javascript 对象上的 setter 和 getter?

来自分类Dev

TypeScript类的“实例范围” getter / setter?

来自分类Dev

没有类的Typescript中的Getter / Setter

来自分类Dev

抽象类的getter和setter用法

来自分类Dev

TypeScript类的“实例范围” getter / setter?

来自分类Dev

jQuery插件中的getter和setter设置

来自分类Dev

Getter-Setter和私有变量

来自分类Dev

Python中成员变量的Getter和Setter

来自分类Dev

在循环中使用 getter setter 变量

来自分类Dev

TypeScript中模块上的getter / setter

来自分类Dev

在Setter或Getter上都应用@JsonProperty

来自分类Dev

访问JavaScript对象的默认getter / setter

来自分类Dev

克隆JavaScript对象-包括getter和setter

来自分类Dev

Javascript setter和getter与对象的键