Getter, Setter とは
getter は参照のみ可能で、新しく値を代入できない変数。
setter は新しく値を代入することだけできて、参照はできない変数。
どう使うのか
getter は、代入は private な場所から、取得は public な場所でちょっと成形して使いたい。
setter は、代入は public な場所から、取得は private な場所で使いたい。
というようなケースで使っていると思う。
サンプルコード
Sample.js
class Sample {
constructor() {
this.test = 'test'
this._test2 = ''
}
// getter
get testJr() {
return this.test + ' Jr.'
}
// setter
set test2(value) {
this._test2 = value
}
}
export default Sample;
main.js
import Sample from './Sample.js'
const s = new Sample
// getter
console.log(s.testJr) // test Jr.
// これは setter なので参照できない。
console.log(s.test2) // undefined
// setter に代入
s.test2 = 'yeah'
// js はプライベート変数や関数を class で作る時は _ を頭につけたりする。
// 当然つけたところでプライベートにはならないので参照できる。
console.log(s._test2) // yeah