JavaScript のオブジェクト変数には "this" が必要ですか?
JavaScript では、クラスの概念が C などの言語とは異なります。クラスベースの継承が欠けているため、プロトタイプの継承が道を譲っています。オブジェクトとそのプロパティは重要な役割を果たします。
コンストラクター関数を使用してオブジェクトを構築する場合、「this」キーワードによりオブジェクトのプロパティへのアクセスが許可されます。次の例を考えてみましょう。
function Foo() { this.bar = 0; }
このコンストラクターでは、「this」キーワードが「bar」プロパティを作成されたオブジェクトに関連付けます。これを使用しないと、「バーが未定義です」というエラーが発生します。
ただし、开発行者発行现了一个技巧,使用构造関数数作為闭包,创造私人" property":
function Foo() { var bar = "foo"; this.getBar = function getter() { return bar; }; }
この例では、変数「bar」はローカルで宣言されていますが、「getBar」はそれにアクセスする特権メソッドです。この手法を使用すると、外部から変更できないプライベート変数を作成できます。
プロトタイプで宣言されたメソッドは、コンストラクター内のローカル変数にアクセスできないことに注意することが重要です。ただし、特権メソッドを使用することはできます。次のコードでは、プロトタイプ メソッド「getFooBar」は「getBar」メソッドを使用してサフィックスを連結します。
Foo.prototype.getFooBar = function() { return this.getBar() + "bar"; }
これにより、パブリック (プロトタイプ メソッド) プロパティとプライベート (特権メソッド) プロパティの両方を作成できます。特権メソッドは異なるスコープ チェーンを持つ個別の関数オブジェクトを作成するため、メモリの使用量を考慮することが重要です。大量のインスタンスの場合は、プロトタイプ メソッドが優先されます。
以上がJavaScript オブジェクト変数に「this」が必要になるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。