Trabalhando com a herança para codificar com javascript
Quando você cria objetos com javascript, você não está apenas limitado a criação de objetos específicos, como sua guitarra, seu carro, seu gato, ou o seu sanduíche. A verdadeira beleza de objetos é que você pode usá-los para criar tipos de objetos, a partir do qual outros objetos podem ser criados.
Conteúdo
Aqui, um novo pessoa objeto do tipo Objeto é criado. Este novo pessoa objeto contém todas as propriedades e métodos do padrão Objeto tipo, mas com um novo nome. Você pode então adicionar suas próprias propriedades e métodos para a pessoa objeto para torná-lo especificamente descrever o que você quer dizer com pessoa.
var pessoa = new Object () - person.eyes = 2-person.ears = 2-person.arms = 2-person.hands = 2-person.feet = 2-person.legs = 2-person.species = “Homo sapien”-
Então, agora você definir algumas propriedades específicas do pessoa objeto. Imagine que você queira criar um novo objeto que é uma pessoa específica, como Willie Nelson. Você poderia simplesmente criar um novo objeto chamado willienelson e dar-lhe todas as mesmas propriedades que o pessoa objeto, além das propriedades que fazem Willie Nelson único.
var willienelson = novo objecto () - willieNelson.eyes = 2-willieNelson.ears = 2-willieNelson.arms = 2-willieNelson.hands = 2-willieNelson.feet = 2-willieNelson.legs = 2-willieNelson.species = “Homo sapien”-willieNelson.occupation =‘músico’-willieNelson.hometown =‘Austin’-willieNelson.hair =‘Long’-willieNelson.genre =‘country’-
Este método de definição do willienelson objecto é um desperdício, no entanto. Ela exige que você fazer um monte de trabalho, e não há nenhuma indicação aqui que Willie Nelson é uma pessoa. Ele só acontece de ter todas as mesmas propriedades que uma pessoa.
A solução é criar um novo tipo de objeto, chamado Pessoa e, em seguida, fazer a willienelson objeto ser do tipo Pessoa.
Observe que o nome do tipo de objeto é sempre em maiúsculas. Este não é um requisito, mas é uma convenção quase universal. Por exemplo, você pode dizer
var pessoa = new Object () -
ou
var willienelson = new Pessoa () -
Construindo objetos com funções de construtor
Para criar um novo tipo de objeto, você define uma nova função de construtor. funções construtoras são formados como qualquer função em javascript, mas eles usam o esta palavra-chave para atribuir propriedades a um novo objeto. O novo objecto, em seguida, herda as propriedades do tipo de objecto.
Aqui é uma função de construtor de nossa Pessoa Tipo de objeto:
Pessoa função () {= 2-this.eyes this.ears = 2-this.arms = 2-this.hands = 2-this.feet = 2-this.legs = 2-this.species = “Homo sapiens” - }
Para criar um novo objeto do tipo Pessoa Agora, tudo o que você precisa fazer é atribuir a função a uma nova variável. Por exemplo:
Video: Curso de javascript Aula 07 Melhorando função de saudação
var willienelson = new Pessoa ()
o willienelson objeto herda as propriedades do Pessoa Tipo de objeto. Mesmo que você não tenha criado especificamente quaisquer propriedades para o willienelson objeto, que contém todas as propriedades Pessoa.
Video: Encapsulamento e Herança no javascript
Para testar isso, executar esse código em um navegador web.
demonstração herança
Aqui está o resultado de executar esse código em um navegador.
Modificando um tipo de objeto
Suponha que você tem a sua Pessoa tipo de objecto, que serve como o protótipo para vários objectos. Em algum momento você percebe que a pessoa, bem como todos os objetos que herdam dele, deveria ter mais algumas propriedades.
Para modificar um objeto de protótipo, use o protótipo propriedade que cada objeto herda Object.
Pessoa função () {= 2-this.eyes this.ears = 2-this.arms = 2-this.hands = 2-this.feet = 2-this.legs = 2-this.species = “Homo sapiens” - } var willienelson = new Pessoa () - var Johnny Cash = new Pessoa () - var Patsy Cline = new Pessoa () - // Pessoa precisa de mais propriedades Person.prototype.knees = 2-Person.prototype.toes = 10-Person!. prototype.elbows = 2 - // Verifique os valores de objetos existentes para o novo propertiesdocument.write (patsyCline.toes) - // saídas 10
Criando objetos com Object.create
Contudo uma outra maneira de criar objetos a partir de outros objetos é usar o Object.create método. Este método tem a vantagem de não exigir que você escrever uma função de construtor. Ele apenas copia as propriedades de um objeto especificado em um novo objeto. Quando um objeto herda de outro objeto, o objeto que herda é chamado de protótipo.
Este exemplo mostra como Object.create pode ser usado para criar o willienelson objeto de um protótipo.
// cria um genérico Personvar Pessoa = {olhos: 2, braços: 2, pés: 2} // cria o objeto willienelson, com base em Personvar willienelson = Object.create (Pessoa) - // testar um propertydocument.write herdado (willienelson .feet) - // saídas 2