「JavaScript/クラス」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
編集の要約なし
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎ユーザー定義クラスのインスタンス配列: ユーザー定義クラスのインスタンスを配列化する為には、コンストラクターのパラメータをコレクションにしたものを、イテレーションし Array::map() でコンストラクターに渡すと簡素に表現できます。
タグ: 2017年版ソースエディター
416 行
 
=== ユーザー定義クラスのインスタンス配列 ===
ユーザー定義クラスのインスタンスを配列化する為には、コンストラクターのパラメータをコレクションにしたものを、イテレーションし Array::map() でコンストラクターに渡すと簡素に表現できます。
 
:<syntaxhighlight lang="javascript">
441 行
juice: 150
</syntaxhighlight>
JavaScriptでは、ユーザー定義クラスのインスタンスもオブジェクトなので、Classのフィールドも(このコードのようにプライベートフィールドにしない限り)プロパティとしてアクセスできてしまいますが、これではカプセル化を破壊してしまいますし、より厄介なのはプロパティの綴りを間違えても警告もエラーも出ず、発見困難なバグの原因となってしまいます。
このため、Object.prototype.toString の様な共通化されたメソッド(インターフェースとも考えられます)を使い、内部構造を隠すことが肝要です。
 
{{Nav}}