herança de classe javascript
Autor:Eve Cole
Data da Última Atualização:2009-06-11 16:23:07
1. A primeira maneira é fingir ser um objeto (usando que todo nome de método em js é um objeto Function) Código Java function Parent(username){
este.nomedeusuário = nome de usuário;
isto.dizer=função(){
alerta(este.nomedeusuário);
}
}
função Filho(nome de usuário,senha){
this.temp = Parent; //temp aponta para onde Parent aponta. Cada nome de método em js é um objeto Function, apontando para um método.
this.temp(username);//O conteúdo do método de inicialização delete this.temp;//temp não é mais útil. Você pode excluí-lo diretamente. Isto não pode ser perdido //Parent(username);//Escrever desta forma pode parecer correto superficialmente, mas na verdade está errado. Como apenas objetos que saem de new possuem this, não há valor ao chamar this em Parent this.password = password;
isto.olá = função(){
alerta(esta.senha);
}
}
var pai = novo Pai("zhangsan");
parent.say();//zhangsan
var filho = new Filho("lisi","123456");
child.say();//lisi
filho.olá();//123456
//A primeira maneira é fingir ser um objeto (usando que todo nome de método em js é um objeto Function)
função Pai(nome de usuário){
este.nomedeusuário = nome de usuário;
isto.dizer=função(){
alerta(este.nomedeusuario);
}
}
função Filho(nome de usuário,senha){
this.temp = Parent; //temp aponta para onde Parent aponta. Cada nome de método em js é um objeto Function, apontando para um método.
this.temp(username);//O conteúdo do método de inicialização delete this.temp;//temp não é mais útil. Você pode excluí-lo diretamente. Isto não pode ser perdido //Parent(username);//Escrever desta forma pode parecer correto superficialmente, mas na verdade está errado. Como apenas objetos que saem de new possuem this, não há valor ao chamar this em Parent this.password = password;
isto.olá = função(){
alerta(esta.senha);
}
}
var pai = novo Pai("zhangsan");
parent.say();//zhangsan
var filho = new Filho("lisi","123456");
child.say();//lisi
filho.olá();//123456
2. O segundo método: método de função call() A função call() é uma função do objeto Function. O uso específico é o seguinte código Java // A função call() é uma função do objeto Function // O específico. o uso é como function test(str){
alerta(este.nomedeusuário + "," + str);
}
var o = new Object();
o.nomedeusuário = "zhangsan";
test.call(o,"123456");//zhangsan,123456. Porque cada objeto Function tem um método call() e o nome da função é um objeto Function O primeiro parâmetro da função call() é a função de teste. Isso em.
//A função call() é uma função do objeto Function //O uso específico é como function test(str){
alerta(este.nomedeusuário + "," + str);
}
var o = new Object();
o.nomedeusuário = "zhangsan";
test.call(o,"123456");//zhangsan,123456. Porque cada objeto Function tem um método call() e o nome da função é um objeto Function O primeiro parâmetro da função call() é a função de teste. Isso em.
Função de código Java Pai(nome de usuário){
este.nomedeusuário = nome de usuário;
isto.dizer=função(){
alerta(este.nomedeusuário);
}
}
função Filho(nome de usuário,senha){
Parent.call (isto, nome de usuário);
esta.senha = senha;
isto.olá = função(){
alerta(esta.senha);
}
}
var pai = novo Pai("zhangsan");
parent.say();//zhangsan
var filho = new Filho("lisi","123456");
child.say();//lisi
filho.olá();//123456
função Pai(nome de usuário){
este.nomedeusuário = nome de usuário;
isto.dizer=função(){
alerta(este.nomedeusuario);
}
}
função Filho(nome de usuário,senha){
Parent.call (isto, nome de usuário);
esta.senha = senha;
isto.olá = função(){
alerta(esta.senha);
}
}
var pai = novo Pai("zhangsan");
parent.say();//zhangsan
var filho = new Filho("lisi","123456");
child.say();//lisi
filho.olá();//123456
3. O terceiro método de implementação: método de função apply() apply() e call() são iguais, exceto que os parâmetros são passados de forma diferente. Os parâmetros de apply são códigos Java de array // O terceiro método de implementação: função apply(). Método, apply() e call() são iguais, exceto que os parâmetros são passados de forma diferente. Os parâmetros de apply são arrays // então a herança pode implementar function Parent(username){ assim.
este.nomedeusuário = nome de usuário;
isto.dizer=função(){
alerta(este.nomedeusuário);
}
}
função Filho(nome de usuário,senha){
Parent.apply(this,new Array(nome de usuário));
esta.senha = senha;
isto.olá = função(){
alerta(esta.senha);
}
}
var pai = novo Pai("zhangsan");
parent.say();//zhangsan
var filho = new Filho("lisi","123456");
child.say();//lisi
filho.olá();//123456