JavaScriptのclassはC++やjavaのclassとは異なる定義が必要な場面がある。
1.定数定義
classで定数を定義するときは、↓このようにする。
Object.defineProperty(this ,'PHONETIC_A' ,{value: "A of ALPHA"});
Object.defineProperty(this ,'PI' ,{value: 3.1416});
thisに続く「PHONETIC_A」や「PI」が定数名、valueの後ろの「A of ALPHA」や3.1416が定数の値になる。これらの定数を参照するには、
var code = this.PHONETIC_A;
と、thisに続けて定数名を書く。
上記の例はjavaScript内の↓と同じ意味になる。
const PHONETIC_A = "ALPHA";
const PI = 3.1416;
2.methodからmethodを呼び出すとき
classのmethod内から同じclass内のmethodを呼び出すときは、↓のように、thisを別の変数(ここではself)に入れて、その変数に呼び出すmethodを繋げる。
class phonetic {
alpha() {
...
var self = this;
self.bravo();
...
}
bravo() {
...
}
}
selfを使わずにthis.bravo()と記述すると、
TypeError: This.bravo is not a function
とエラーになってしまう。
コメント