为了账号安全,请及时绑定邮箱和手机立即绑定

在类变量 JavaScript 上设置 getter/setter

在类变量 JavaScript 上设置 getter/setter

料青山看我应如是 2023-01-06 15:50:18
我有一个如下所示的类:export default class Car {    brand = '';    color = '';    fuel = '';    constructor(car) {        ...    }}如何在类变量上设置 setter?例如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。
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

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


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信