什么是 get
和 set
ES6 类定义中的方法?它们实际上是原型属性吗?例如:
class Person{
constructor(){};
get name(){
return 'jack';
}
set name(){
// ???
}
}
这是否等于 Person.prototype.name = 'jack'
?此外,我还看到了使用实例 prop 的 setter 示例,例如:
class Person{
constructor(){
this._name = 'jack';
};
get name(){
return this._name;
}
set name(val){
this._name = val;
}
}
我不想这样做;我想要这样的东西:
class Person{
constructor(){};
get name(){
return 'jack';
}
set name(val){
// like this
// name = val;
}
}
可以做什么?
原文由 feiyuerenhai 发布,翻译遵循 CC BY-SA 4.0 许可协议
是的,可以做到:只需删除 setter/getter 语法并在初始化期间向类添加一个属性:
getter/setter 语法存在于必须基于其他属性计算的属性,例如
area
来自给定radius
的圆的属性:或者获取具有
firstName
和lastName
Person
的对象的全名。你明白了。