JavaScript プログラミングの分野では、「プロトタイプ」という用語が使用されます。 ' と 'this' はオブジェクト指向開発において重要な役割を果たします。ただし、それらの独特の動作は混乱を引き起こす可能性があります。この記事は、これらの概念の違いを明らかにし、その使用法を包括的に理解することを目的としています。
「this」は、関数が呼び出される現在のコンテキストを参照する特別なキーワードです。これにより、オブジェクトのインスタンス プロパティとメソッドへのアクセスが提供されます。関数が 'new' 演算子なしで呼び出された場合、'this' はデフォルトでグローバル オブジェクト (ブラウザ環境のウィンドウ) になります。
'prototype' はプロパティです関数の複数のインスタンス間でプロパティとメソッドを共有する方法を提供する関数。関数の各インスタンスは、非表示の [[Prototype]] プロパティを介してプロトタイプのプロパティとメソッドにアクセスできます。
シナリオ 1:
関数上で直接メソッドを定義する:
var A = function () { this.x = function () { // Do something }; };
この例ではこのシナリオでは、「this」のデフォルトがグローバル オブジェクトであるため、式 'this.x()' は 'window.x()' を参照します。
シナリオ 2:
プロトタイプでのメソッドの定義:
var A = function () { }; A.prototype.x = function () { // Do something };
ここでは、「x()」メソッドがプロトタイプ オブジェクト ('A.prototype')。これにより、'A' のすべてのインスタンスが 'x()' メソッドにアクセスできるようになります。
「プロトタイプ」を使用してメソッドを共有しても、必ずしも大幅なメモリの節約につながるわけではないことに注意してください。ただし、一般に、各インスタンスがメソッドの独自のコピーを持つ場合と比較して、メモリ消費量が削減されます。
以上がJavaScript の「this」と「prototype」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。