herencia de clases javascript
Autor:Eve Cole
Fecha de actualización:2009-06-11 16:23:07
1. La primera forma es pretender ser un objeto (usando que cada nombre de método en js es un objeto de función) Función de código Java Parent(nombre de usuario){.
this.nombredeusuario = nombre de usuario;
this.say = función(){
alerta (este.nombre de usuario);
}
}
función Niño(nombre de usuario,contraseña){
this.temp = Parent;//temp apunta a donde apunta Parent. Cada nombre de método en js es un objeto Función que apunta a un método.
this.temp(username);//El contenido del método de inicialización se elimina this.temp;//temp ya no es útil. Puede eliminarlo directamente. Esto no se puede perder //Parent(nombre de usuario);//Escribir de esta manera puede parecer correcto en la superficie, pero en realidad es incorrecto. Debido a que solo los objetos que salen de nuevo tienen esto, no hay ningún valor al llamar a esto en Parent this.password = contraseña;
this.hola = función(){
alerta (esta.contraseña);
}
}
var padre = nuevo padre ("zhangsan");
padre.say();//zhangsan
var niño = nuevo Niño("lisi","123456");
niño.say();//lisi
niño.hola();//123456
// La primera forma es pretender ser un objeto (usando que cada nombre de método en js es un objeto de función).
función Padre(nombre de usuario){
this.nombredeusuario = nombre de usuario;
this.say = función(){
alerta (este.nombre de usuario);
}
}
función Niño(nombre de usuario,contraseña){
this.temp = Parent;//temp apunta a donde apunta Parent. Cada nombre de método en js es un objeto Función que apunta a un método.
this.temp(username);//El contenido del método de inicialización se elimina this.temp;//temp ya no es útil. Puede eliminarlo directamente. Esto no se puede perder //Parent(nombre de usuario);//Escribir de esta manera puede parecer correcto en la superficie, pero en realidad es incorrecto. Debido a que solo los objetos que salen de nuevo tienen esto, no hay ningún valor al llamar a esto en Parent this.password = contraseña;
this.hola = función(){
alerta (esta.contraseña);
}
}
var padre = nuevo padre ("zhangsan");
padre.say();//zhangsan
var niño = nuevo Niño("lisi","123456");
niño.say();//lisi
niño.hola();//123456
2. El segundo método: método de función call() La función call() es una función del objeto Función. El uso específico es el siguiente Código Java // La función call() es una función del objeto Función // El específico. el uso es como la función test(str){
alerta (este.nombre de usuario + "," + str);
}
var o = nuevo Objeto();
o.nombre de usuario = "zhangsan";
test.call(o,"123456");//zhangsan,123456. Porque cada objeto Función tiene un método call() y el nombre de la función es un objeto Función. El primer parámetro de la función call() es la función de prueba. Esto en.
//La función call() es una función del objeto Función //El uso específico es como función test(str){
alerta (este.nombre de usuario + "," + str);
}
var o = nuevo Objeto();
o.nombre de usuario = "zhangsan";
test.call(o,"123456");//zhangsan,123456. Porque cada objeto Función tiene un método call() y el nombre de la función es un objeto Función. El primer parámetro de la función call() es la función de prueba. Esto en.
Función de código Java Padre (nombre de usuario) {
this.nombredeusuario = nombre de usuario;
this.say = función(){
alerta (este.nombre de usuario);
}
}
función Niño(nombre de usuario,contraseña){
Parent.call(este,nombre de usuario);
this.contraseña = contraseña;
this.hola = función(){
alerta (esta.contraseña);
}
}
var padre = nuevo padre ("zhangsan");
padre.say();//zhangsan
var niño = nuevo Niño("lisi","123456");
niño.say();//lisi
niño.hola();//123456
función Padre(nombre de usuario){
this.nombredeusuario = nombre de usuario;
this.say = función(){
alerta (este.nombre de usuario);
}
}
función Niño(nombre de usuario,contraseña){
Parent.call(este,nombre de usuario);
this.contraseña = contraseña;
this.hola = función(){
alerta (esta.contraseña);
}
}
var padre = nuevo padre ("zhangsan");
padre.say();//zhangsan
var niño = nuevo Niño("lisi","123456");
niño.say();//lisi
niño.hola();//123456
3. El tercer método de implementación: método de función apply() apply() y call() son iguales, excepto que los parámetros se pasan de manera diferente. Los parámetros de apply son códigos Java de matriz // El tercer método de implementación: función apply(). El método, apply() y call() son iguales, excepto que los parámetros se pasan de manera diferente. Los parámetros de apply son matrices // por lo que la herencia puede implementar la función Parent(username){ así.
this.nombredeusuario = nombre de usuario;
this.say = función(){
alerta (este.nombre de usuario);
}
}
función Niño(nombre de usuario,contraseña){
Parent.apply(this,new Array(nombre de usuario));
this.contraseña = contraseña;
this.hola = función(){
alerta (esta.contraseña);
}
}
var padre = nuevo padre ("zhangsan");
padre.say();//zhangsan
var niño = nuevo Niño("lisi","123456");
niño.say();//lisi
niño.hola();//123456