Skip to content

Instantly share code, notes, and snippets.

@dekisr
Created January 31, 2019 19:10
Show Gist options
  • Save dekisr/2b49a1c9e528b6df0e1609c1591601ad to your computer and use it in GitHub Desktop.
Save dekisr/2b49a1c9e528b6df0e1609c1591601ad to your computer and use it in GitHub Desktop.
Exemplos para Raphaelli
/*
não estamos criando literalmente cada método na instanciação do
objeto, é uma referência aos prototypes, por isso funciona...
*/
function Quadrupede() {
this.patas = 4
this.cabeca = 1
}
function Snoopy() {
Quadrupede.call(this)
this.latido = 'Whaaat'
this.ExemploRuim = function() {
//Aqui de fato estamos escrevendo a função e colocando uma em CADA objeto Snoopy instanciado...
console.log('desempenho?POO?')
}
}
Snoopy.prototype = Object.create(Quadrupede.prototype)
const cobaia = new Snoopy()
const cachorro = new Quadrupede()
// adicionando métodos em ambos prototypes após objeto instanciado
Quadrupede.prototype.fala = function() {
console.log(this.latido)
}
Snoopy.prototype.souBipede = function() {
this.patas = 0
this.pes = 2
this.maos = 2
}
cobaia.fala()
console.log(cobaia.patas)
cobaia.souBipede()
console.log(cobaia.patas)
console.log(cobaia.pes)
// cachorro.souBipede() não existe herança de filho para mãe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment