Javascriptにおける、アクセサプロパティについて。
外部からアクセスできる状態のプロパティに対して、アクセサメソッドを定義する意味はあるのでしょうか。
Javascript Primerで学習中なのですが、このコードを書く意義が分かりません。
javascript
1class NumberWrapper { 2 constructor(value) { 3 this._value = value; 4 } 5 // `_value`プロパティの値を返すgetter 6 get value() { 7 console.log("getter"); 8 return this._value; 9 } 10 // `_value`プロパティに値を代入するsetter 11 set value(newValue) { 12 console.log("setter"); 13 this._value = newValue; 14 } 15} 16 17const numberWrapper = new NumberWrapper(1); 18// "getter"とコンソールに表示される 19console.log(numberWrapper.value); // => 1 20// "setter"とコンソールに表示される 21numberWrapper.value = 42; 22// "getter"とコンソールに表示される 23console.log(numberWrapper.value); // => 42
この場合だと、普通に次のように書けばアクセスできますし、わざわざアクセサは不要なのではないでしょうか。
Javascript
1console.log(numberWrapper._value)
プロパティを外部からアクセスできないようにするにはクロージャを利用すると学んだのですが、この時にはアクセスプロパティを定義する意味はわかります。
しかし、そうでもないのにアクセサプロパティを定義する理由はあるのでしょうか。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー