クラスを作成するときに、以下の各新しいクラスに共通の変数やその他の関数を持たせたい場合は、this キーワードを使用するのが最良の方法です。
もちろん、これはオブジェクト指向言語であるため、アクセス権の問題が存在するはずですが、これも this キーワードと密接に関係しています。このクラスのアクセス許可の問題を説明するための例を示します。
//パーソンクラス
関数 パーソン(){
var name="abc";//var はクラス内でプライベート変数を宣言しており、外部からはアクセスできません
var age = 20;
this.name2="edg" ;// これは外部からアクセスできるパブリック変数を宣言します
this.show=function(){//shou メソッドは外部からアクセスできるパブリック メソッドであり、内部のプライベート メソッドにアクセスできますclass
window.alert(name);
}
function show2(){//showw2 メソッドはクラス内のプライベート メソッドであり、外部からアクセスできません
}
}
var p1 = new Person();
document.writeln(p1.name2 p1.name);
p1.show(); .jb51.net
function Person(){
var name="abc";//var はクラス内でプライベート変数を宣言しており、外部からアクセスできません
var age = 20;
this.name2="edg ";//これは外部からアクセスできるパブリック変数を宣言します
this.show=function(){//shou メソッドは外部からアクセスできるパブリック メソッドであり、クラス内のプライベート メソッドにアクセス
window.alert(name);
}
function show2(){//shouw2 メソッドはクラス内のプライベート メソッドであり、外部からアクセスできません
}
}
var p1 = new Person();
document.writeln(p1.name2 p1.name);
p1.show();
この Person は実際にはクラスです、クラス名は Person で、その中で宣言されている var で始まる変数はすべてプライベート変数であり、クラス
内でのみアクセスできます。
質問しますが、このキーワードを通じて宣言された変数はパブリック変数であり、外部からアクセスできます。もちろん、外部アクセスを実現するメソッドを公開するだけで済みます
クラス内のプライベート変数について質問します。 This.show=function(){} は、クラスの外部でも呼び出すことができるパブリック メソッドを宣言します。もちろんこれで
同様に、直接宣言されたメソッドはプライベート メソッドです/
別の例を見てみましょう
function test(){
アラート(this.v);
var v = 902;
関数 test(){
アラート(this.v);
}
var v = 902;
window.test();
これは、誰がこのメソッドを呼び出すか、つまりウィンドウなどのオブジェクトを参照することを意味します。オブジェクトはテストメソッドを呼び出します、
テスト メソッド内では、この v は、v 変数がウィンドウ内で定義されているかどうか、つまり外部で
が定義されているかどうかを確認できます。
A var v = 902; したがって、このメソッドが呼び出すのは実際には v の値です。