Наследование классов Javascript
Автор:Eve Cole
Время обновления:2009-06-11 16:23:07
1. Первый способ — притвориться объектом (используя то, что каждое имя метода в js является объектом-функцией). Java-код function Parent(username){.
this.username = имя пользователя;
this.say = функция(){
предупреждение (это.имя пользователя);
}
}
функция Child(имя пользователя,пароль){
this.temp = Parent;//temp указывает на то место, куда указывает Parent. Каждое имя метода в js является объектом Function, указывающим на метод.
this.temp(username);//Содержимое метода инициализации delete this.temp;//temp больше не полезно. Вы можете удалить его напрямую. Это невозможно потерять //Parent(username);//На первый взгляд такой способ записи может показаться правильным, но на самом деле это неправильно. Поскольку это есть только у объектов, возникших из new, при вызове this в Parent this.password = пароль не имеет значения;
это.привет = функция(){
оповещение(этот.пароль);
}
}
вар родитель = новый родитель («чжансан»);
родитель.say();//чжансан
var child = новый Child("lisi","123456");
child.say();//лиси
child.hello();//123456
//Первый способ — притвориться объектом (исходя из того, что каждое имя метода в js является объектом-функцией).
функция Родитель (имя пользователя) {
this.username = имя пользователя;
this.say = функция(){
предупреждение (это.имя пользователя);
}
}
функция Child(имя пользователя,пароль){
this.temp = Parent;//temp указывает на то место, куда указывает Parent. Каждое имя метода в js является объектом Function, указывающим на метод.
this.temp(username);//Содержимое метода инициализации delete this.temp;//temp больше не полезно. Вы можете удалить его напрямую. Это невозможно потерять //Parent(username);//На первый взгляд такой способ записи может показаться правильным, но на самом деле это неправильно. Поскольку это есть только у объектов, возникших из new, при вызове this в Parent this.password = пароль не имеет значения;
это.привет = функция(){
оповещение(этот.пароль);
}
}
вар родитель = новый родитель («чжансан»);
родитель.say();//чжансан
var child = новый Child("lisi","123456");
child.say();//лиси
child.hello();//123456
2. Второй метод: метод функции call() Функция call() является функцией объекта Function. Конкретное использование заключается в следующем коде Java // Функция call() является функцией объекта Function // Конкретное использование. использование такое, как function test(str){
alert(this.username + "," + str);
}
вар о = новый объект ();
o.username = "Чжансан";
test.call(o,"123456");//zhangsan,123456. Поскольку каждый объект Function имеет метод call(), а имя функции — это объект Function. Первый параметр функции call() — это тестовая функция. Это в.
//Функция call() является функцией объекта Function //Конкретное использование, например, function test(str){
alert(this.username + "," + str);
}
вар о = новый объект ();
o.username = "Чжансан";
test.call(o,"123456");//zhangsan,123456. Поскольку каждый объект Function имеет метод call(), а имя функции — это объект Function. Первый параметр функции call() — это тестовая функция. Это в.
Функция кода Java Parent(имя пользователя){
this.username = имя пользователя;
this.say = функция(){
предупреждение (это.имя пользователя);
}
}
функция Child(имя пользователя,пароль){
Parent.call(это,имя пользователя);
this.password = пароль;
это.привет = функция(){
оповещение(этот.пароль);
}
}
вар родитель = новый родитель («чжансан»);
родитель.say();//чжансан
var child = новый Child("lisi","123456");
child.say();//лиси
child.hello();//123456
функция Родитель (имя пользователя) {
this.username = имя пользователя;
this.say = функция(){
предупреждение (это.имя пользователя);
}
}
функция Child(имя пользователя,пароль){
Parent.call(это,имя пользователя);
this.password = пароль;
это.привет = функция(){
оповещение(этот.пароль);
}
}
вар родитель = новый родитель («чжансан»);
родитель.say();//чжансан
var child = новый Child("lisi","123456");
child.say();//лиси
child.hello();//123456
3. Третий метод реализации: метод функции apply(), метод apply() и вызов() одинаковы, за исключением того, что параметры Apply передаются по-разному. Параметры apply — это коды массива Java // Третий метод реализации: функция apply(). Метод, apply() и call() одинаковы, за исключением того, что параметры передаются по-разному. Параметры apply являются массивами, // поэтому наследование может реализовать функцию Parent(username){ вот так.
this.username = имя пользователя;
this.say = функция(){
предупреждение (это.имя пользователя);
}
}
функция Child(имя пользователя,пароль){
Parent.apply(this,new Array(username));
this.password = пароль;
это.привет = функция(){
оповещение(этот.пароль);
}
}
вар родитель = новый родитель («чжансан»);
родитель.say();//чжансан
var child = новый Child("lisi","123456");
child.say();//лиси
child.hello();//123456