JavaScript は、Java や C などの他のオブジェクト指向言語のような従来の意味でのクラスをサポートしません。ただし、プロトタイプを使用してオブジェクトのコンストラクターを定義する独自のメカニズムが提供されます。
プロトタイプの使用:
JavaScript オブジェクトには、メソッドの追加に使用できるプロトタイプ プロパティがあり、そのオブジェクトのすべてのインスタンスにプロパティを追加します。プロトタイプを使用してコンストラクターを定義するには、関数を作成し、それをオブジェクトのプロトタイプに割り当てます。
<code class="javascript">function Box(color) { // Constructor this.color = color; } Box.prototype.getColor = function() { return this.color; };</code>
このコンストラクターは color 引数を受け取り、それをオブジェクトの color プロパティに保存します。また、Box オブジェクトのすべてのインスタンスからアクセスできる getColor メソッドもプロトタイプに追加されます。
プライベート プロパティの非表示:
JavaScript には true がありません。プライベート メンバーの場合、プライベート プロパティをシミュレートする手法を使用できます。
<code class="javascript">function Box(col) { var color = col; this.getColor = function() { return color; }; }</code>
この例では、カラー変数はコンストラクター内でローカル変数として宣言されています。コンストラクターの外部から直接アクセスすることはできません。ただし、カラー変数の値を返す getColor メソッドが提供されています。
使用法:
Box オブジェクトのインスタンスを作成するには、 new キーワードを使用します。
<code class="javascript">var blueBox = new Box("blue"); alert(blueBox.getColor()); // will alert blue var greenBox = new Box("green"); alert(greenBox.getColor()); // will alert green</code>
JavaScript では、プロトタイプを利用したり、プライベート プロパティをシミュレートしたりすることで、オブジェクトのコンストラクターを定義し、カプセル化をある程度シミュレートできます。
以上がJavaScript オブジェクトのコンストラクターはどのように定義しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。