ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript オブジェクト変数に「this」が必要になるのはどのような場合ですか?

JavaScript オブジェクト変数に「this」が必要になるのはどのような場合ですか?

Barbara Streisand
リリース: 2024-12-15 08:23:10
オリジナル
617 人が閲覧しました

When Do JavaScript Object Variables Need

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート