変数宣言にvarとthisを使わない定義の仕方を考えてみましたが、文法・機能共に問題はないでしょうか。
アンダースコアへの理解が自信ありません。プロパティを定義する部分にアンダースコアを付けなくてもいいのでしょうか。
今現在はプロトタイプについて勉強しております。
ですのでclassではなくfunctionでの定義方法についてご指導頂ければ幸いです。
よろしくお願い致します。
「改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで P255」より。
function Func() { //プライベート変数を宣言。 let _prop1; let _prop2; Object.defineProperties(this, { // prop1プロパティを定義。 prop1: { // _prop1とすべきでしょうか。 get: function() { return _prop1; }, set: function(prop1) { if(typeof prop1 === 'number' && prop1 > 0) { _prop1 = prop1; } } }, // prop2プロパティを定義。 prop2: { // _prop2とすべきでしょうか。 get: function() { return _prop2; }, set: function(prop2) { if(typeof prop2 === 'number' && prop2 > 0) { _prop2 = prop2; } } } }) }
> 変数宣言にvarとthisを使わない
thisは使っていますよね?
ここで言う「プライベートメンバ」とは、インスタンスの内部からのみアクセスできる変数(プロパティ)、という理解で合っていますか?
もしそうだとすると、このコードの prop1 などは「プライベートメンバ」ではないと思うのですが、それについては考慮しなくていいですか?
ああ、すみません、理解しました。
prop1 は「プライベートメンバ」ではなくて、_prop1 が「プライベートメンバ」であるということなのですね。
Lhankor_Mhy様、返信ありがとうございます。
はい、そうです。
maisumakun様
thisは使っていますよね?
あくまで宣言文の箇所に直接は使わないという意味でしたが、
私の文章はが不正確なため紛らわしくなってしまいました。
> あくまで宣言文の箇所に直接は使わないという意味でしたが
直接使うような記法が逆に想像できないです。
すみません。
回答2件
あなたの回答
tips
プレビュー