JavaScript: オブジェクト変数に対する "this.var" の必要性
C のような特定のプログラミング言語では、"this" を使用してオブジェクト変数を宣言します->variable" は、変数がクラスのスコープ内にある場合はオプションであることがよくあります。ただし、JavaScript では、オブジェクト内のすべての変数に「this.var」を使用することが重要です。
「this.var」が必要な理由
JavaScript では、独自のクラスベースのシステムではなく、プロトタイプの継承モデル。 「new」キーワードを使用して作成されたオブジェクトは、プロトタイプ オブジェクトからプロパティとメソッドを継承します。
オブジェクト コンストラクター関数内でメソッドを定義する場合、「this」キーワードは作成されるオブジェクトを参照します。 「this」を使用せずにプロパティを割り当てると、メソッド内にローカル変数が作成され、関数の外部からはアクセスできなくなります。
例: "this.var" を使用しない
function Foo() { bar = 0; getBar = function() { return bar; } } const foo = new Foo(); console.log(foo.getBar()); // ReferenceError: bar is not defined
例: あり"this.var"
function Foo() { this.bar = 0; this.getBar = function() { return this.bar; } } const foo = new Foo(); console.log(foo.getBar()); // 0
代替アプローチ: クロージャ
オブジェクト内にプライベート変数を作成するために、JavaScript 開発者はクロージャ アプローチを採用することがよくあります。コンストラクター関数内でローカル変数を定義し、それらの変数にアクセスする特権メソッドを返すことで、パブリック メソッドを公開しながらプライベート属性を保持できます。
例: Closure の使用
function Foo() { let bar = "foo"; this.getBar = function() { return bar; }; } const foo = new Foo(); console.log(foo.getBar()); // "foo"
結論
使用中「this.var」は冗長に見えるかもしれませんが、Javascript ではメソッド内でオブジェクト変数にアクセスできるようにし、ローカル変数とオブジェクトレベル変数の区別を維持するために不可欠です。あるいは、クロージャを使用すると、オブジェクト内にプライベート変数を作成し、カプセル化とデータのセキュリティを強化する方法が提供されます。
以上がJavaScript のオブジェクト変数に「this.var」が必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。