É possível criar objetos herdados de outros objetos, para isto é necessário conhecer o conceito dos objetos javascript. Cada objeto javascript na verdade possui um outro objeto javascript associado a ele. Este segundo objeto é chamado protótipo, e o primeiro objeto herda as propriedades do protótipo. Para herdar um objeto em javascript é preciso criar uma função usando os comandos abaixo:
New
O operador New cria e inicializa um novo objeto. A nova palavra-chave deve ser seguida por uma chamada de função ().
Object.Prototypes
A propriedade protótipo de um objeto faz referencia ao segundo objeto chamado protótipo.
Object.Create
cria um novo objeto, utilizando o seu primeiro argumento como o protótipo do objeto.
Exemplo:
Neste exemplo criamos uma função que usa o conceito de objetos para criar heranças, e usamos esta função para herdar propriedades de um objeto e usa-la em novos objetos. Você pode ver que o objeto caminhonete recebe heranças do objeto carro, o novo objeto contém todas as propriedades herdadas e suas próprias propriedades.
Html / JavaScript
<!DOCTYPE html> <html> <head> <title>Desenvolvimento Aberto</title> </head> <body> <h2>Desenvolvimento Aberto -Inheritance </h2> <br> <h3>JavaScript</h3> <br> <pre> <script> // Função herança function inherit(objeto) { if (objeto == null) throw TypeError(); if (Object.create) return Object.create(objeto); var tipo = typeof objeto; if (tipo !== "object" && tipo !== "function") throw TypeError(); function funcao() {}; funcao.prototype = objeto; return new funcao(); } // Cria objeto carro var carro = { marca:"" , portas:"" , combustivel:"" }; carro.marca = "Ford"; carro.portas= "4 portas"; carro.combustivel = "Gasolina"; document.writeln("O objeto carro possui as seguintes caracteristicas:\n"); document.writeln("Marca: " + carro.marca); document.writeln("Portas: " + carro.portas); document.writeln("Combustivel: " + carro.combustivel); // Herda objeto carro e cria um novo objeto caminhonete var caminhonete = inherit(carro); caminhonete.marca ="Ford"; caminhonete.portas= "4 portas"; caminhonete.combustivel = "Disel"; // Adiciona novas propriedades ao objeto caminhonete.cabine = "Dupla"; document.writeln("\nHerança JavaScript\n"); document.writeln("O objeto carro passa suas propriedade para o objeto caminhonete\n"); document.writeln("O objeto caminhonete possui as seguintes caracteristicas:\n"); document.writeln("Marca: " + caminhonete.marca); document.writeln("Portas: " + caminhonete.portas); document.writeln("Combustivel: " + caminhonete.combustivel); document.writeln("Cabine: " + caminhonete.cabine); </script> </pre> </body> </html>