JS class getter setters



根据马丁,该语法可用于定义nodejs中的类:

class Person {
  constructor() {
    this.id = 'id_1';
  }
  set name(name) {
    this._name = name;
  }
  get name() {
    return this._name;
}

用法:

myPerson.name = "Saul"; // save the value in `_name` variable.

此惯例的轻微问题是呼叫JSON.stringify(myPerson)将打印以下内容:

{
  "_name": "Saul"
} 

但是,如果我从设置器函数中删除下划线,并将其写入以下内容:

  set name(name) {
    this.name = name;
  }

设置器功能将永远递归地自称。因此,是否没有办法使用此精美的getter-setter语法,并且仍然使用name属性?我正在运行nodejs。

我在这里根本看不到问题。如果您值得注意,它可以按预期工作:

 const saul = Object.assign(new Person, JSON.parse('{"_name": "Saul"}'));
 console.log(saul.name);

最新更新