« javascript class的な | メイン | javascript promise »
2017年06月03日
Classのstatic private public がスパゲッティ
private宣言されたものは外部から直接変更できない
var 宣言されたものは publicで外部から参照、変更できる
↑ここまで プロパティ(変数・関数)のアクセス権
static はインスタンスを作らずともアクセス可能なプロパティ(変数、関数)
使い所がいまいち分からないが・・・
http://fukumori.org/oo/why_use_getters_and_setters_j.html
1. クラス内部のデータ表現を変えた場合でも呼び出し側のコードを変更する必要がない。
8. 値の正当性チェックを入れることができる。
このあたりはいいかも?とか
-----------------------
getter setter は作法としてはセットで使う値をセット、値を取得
getterは引数なしの事
setterは引数必須
変数はprivateアクセスとして外から直接いじれないようにしつつ、操作をメソッド経由で行う。
何のメリットがあるのかはわからねーw
どうも使い方がしっくりこないので自分では使わないかもしれない・・・
というかjsの場合、privateな変数つくれないからどっちにしろ外からアクセスできるし、うーん意味あるの??
'use strict'class Test {
constructor() {}
// x座標のゲッター
get x() {
return this._x || 0;
}// y座標のゲッター
get y() {
return this._y || 0;
}// x座標のセッター
set x(x) {
this._x = x
}// y座標のセッター
set y(y) {
this._y = y;
}get distance() {
return Math.sqrt(this.x * this.x + this.y * this.y);
}
}const test1 = new Test;
console.log(test1.distance);// 0;
test1.x = 3;
test1.y = 4;
console.log(test1.distance);// 5
投稿者 muuming : 2017年06月03日 18:21