我想在我的班级里有一个私人财产。我有一门课叫
Person
person
声明
let person = new Person('name1')
.
人
的属性。我可以简单地做:
class Person {
constructor(name) {
this.name = name;
}
}
class Person {
set name() {
// some actions
}
constructor(name) { }
}
那我怎么保存这个名字呢?例如,我必须有另一处房产
_name
class Person {
set name(newName) {
// some actions
return this._name;
}
set name(newName) {
this._name = name;
// some actions
}
constructor(name) {
this._name = name;
}
}
问题是
person._name
有没有办法让它不能从外面进入?
我的灵感来自
this answer
_姓名
定义getter和setter时。以下代码不起作用:
class Person {
constructor(name) {
var _name = name;
Object.defineProperties(this, {
"name": {
"get": () => { return _name; },
"set": () => { _name = name; }
}
});
}
}