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

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

Dec 15, 2024 am 08:23 AM

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

' this' JavaScriptで? ' this' JavaScriptで? Mar 04, 2025 am 01:15 AM

' this' JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles