根据Martin,此语法可用于在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"
}
但是如果我从setter函数中删除下划线,并将其写成如下:
set name(name) {
this.name = name;
}
setter函数将以递归方式永久调用自身。那么有没有办法使用这个漂亮的getter-setter语法,仍然使用name
属性?我正在运行nodejs。
答案 0 :(得分:1)
我在这里根本没有看到任何问题。如果你反序列化它,它按预期工作:
const saul = Object.assign(new Person, JSON.parse('{"_name": "Saul"}'));
console.log(saul.name);