JavaScript クラスの継承
著者:Eve Cole
更新時間:2009-06-11 16:23:07
1. 1 つ目の方法は、オブジェクトのふりをすることです (js 内のすべてのメソッド名が Function オブジェクトであることを使用します) Java コード function Parent(username){
this.username = ユーザー名;
this.say = function(){
アラート(この.ユーザー名);
}
}
function Child(ユーザー名,パスワード){
this.temp = Parent;//temp は Parent が指す場所を指します。 js 内の各メソッド名は、メソッドを指す Function オブジェクトです。
this.temp(username);//初期化メソッドの内容は delete this.temp;//temp はもう役に立ちません。これは直接削除できます。これは失われることはありません。 //Parent(username);//このように書くと、一見正しいように見えますが、実際には間違っています。 new から生成されたオブジェクトのみが this を持つため、親で this を呼び出しても値はありません。
this.hello = function(){
アラート(このパスワード);
}
}
varparent = new Parent("zhangsan");
parent.say();//張さん
var child = new Child("lisi","123456");
child.say();//リシ
child.hello();//123456
//最初の方法は、オブジェクトのふりをすることです (js 内のすべてのメソッド名が Function オブジェクトであることを使用します)。
関数 親(ユーザー名){
this.username = ユーザー名;
this.say = function(){
アラート(この.ユーザー名);
}
}
function Child(ユーザー名,パスワード){
this.temp = Parent;//temp は Parent が指す場所を指します。 js 内の各メソッド名は、メソッドを指す Function オブジェクトです。
this.temp(username);//初期化メソッドの内容は delete this.temp;//temp はもう役に立ちません。これは直接削除できます。これは失われることはありません。 //Parent(username);//このように書くと、一見正しいように見えますが、実際には間違っています。 new から生成されたオブジェクトのみが this を持つため、親で this を呼び出しても値はありません。
this.hello = function(){
アラート(このパスワード);
}
}
varparent = new Parent("zhangsan");
parent.say();//張さん
var child = new Child("lisi","123456");
child.say();//リシ
child.hello();//123456
2. 2 番目のメソッド: call() 関数メソッド call() 関数は Function オブジェクトの関数です。具体的な使用方法は次のとおりです。 Java コード // call() 関数は Function オブジェクトの関数です。使用法は function test(str){ などです。
アラート(この.ユーザー名 + "," + str);
}
var o = 新しいオブジェクト();
o.ユーザー名 = "張三";
test.call(o,"123456");//zhangsan,123456。各 Function オブジェクトには call() メソッドがあり、関数名は call() 関数の最初のパラメーターであるためです。これで。
//call() 関数は Function オブジェクトの関数です //具体的な使い方は function test(str){ などです
アラート(この.ユーザー名 + "," + str);
}
var o = 新しいオブジェクト();
o.ユーザー名 = "張三";
test.call(o,"123456");//zhangsan,123456。各 Function オブジェクトには call() メソッドがあり、関数名は call() 関数の最初のパラメーターであるためです。これで。
Java コード関数 Parent(ユーザー名){
this.username = ユーザー名;
this.say = function(){
アラート(この.ユーザー名);
}
}
function Child(ユーザー名,パスワード){
Parent.call(この,ユーザー名);
this.password = パスワード;
this.hello = function(){
アラート(このパスワード);
}
}
varparent = new Parent("zhangsan");
parent.say();//張さん
var child = new Child("lisi","123456");
child.say();//リシ
child.hello();//123456
関数 親(ユーザー名){
this.username = ユーザー名;
this.say = function(){
アラート(この.ユーザー名);
}
}
function Child(ユーザー名,パスワード){
Parent.call(この,ユーザー名);
this.password = パスワード;
this.hello = function(){
アラート(このパスワード);
}
}
varparent = new Parent("zhangsan");
parent.say();//張さん
var child = new Child("lisi","123456");
child.say();//リシ
child.hello();//123456
3. 3 番目の実装メソッド: apply() 関数のメソッド apply() と call() は、パラメーターの受け渡し方が異なることを除いて同じです。 // 3 番目の実装メソッド: apply() 関数。 apply() メソッドと call() メソッドは、パラメーターの受け渡し方が異なることを除いて同じです。 // したがって、継承では次のように関数 Parent(username){ を実装できます。
this.username = ユーザー名;
this.say = function(){
アラート(この.ユーザー名);
}
}
function Child(ユーザー名,パスワード){
Parent.apply(this,new Array(ユーザー名));
this.password = パスワード;
this.hello = function(){
アラート(このパスワード);
}
}
varparent = new Parent("zhangsan");
parent.say();//張さん
var child = new Child("lisi","123456");
child.say();//リシ
child.hello();//123456