Javascript ES6 にて getter, setter を扱う

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