【发布时间】:2015-03-29 03:00:15
【问题描述】:
我对 ECMAScript 6 类中 getter 和 setter 的意义感到困惑。目的是什么?以下是我所指的示例:
class Employee {
constructor(name) {
this._name = name;
}
doWork() {
return `${this._name} is working`;
}
get name() {
return this._name.toUpperCase();
}
set name(newName){
if(newName){
this._name = newName;
}
}
}
【问题讨论】:
-
和 C# 中的类似,如果你碰巧知道的话。
-
可以在以下位置找到解释这一点的好文章:coryrylan.com/blog/javascript-es6-class-syntax“在我们上面的类中,我们的 name 属性有一个 getter 和 setter。我们使用 '_' 约定来创建一个支持字段来存储我们的 name 属性。如果每次调用 get 或 set 时都没有这个,它会导致堆栈溢出“......它还谈到了变量不是真正的“私有”,但是有许多新方法可以在 JS 类中创建私有变量;我最喜欢的只是使用 Typescript,但我也使用过 Symbol 方法
标签: javascript class ecmascript-6 getter setter