Pesquisar neste blog

19/07/2020

Herança 02 em JavaScript

//Cadeia de protótipos (prototype chain)
Object.prototype.atr0 = 'Z'

const avo = {atr1: "A"}
const pai = {__proto__: avoatr2: 'B'}
const filho = {__proto__: paiatr3: 'C'}
console.log(filho.atr1);//procura no atributo atr1 o protótipo de filho
console.log(filho.atrX);//indefinido = null

console.log(filho.atr0);//procura em objeto do atributo atr0 
console.log(filho.atr0filho.atr1filho.atr2filho.atr3);
console.log(pai.atr3);//nulo

const teste = {__proto__: avoatr2:'K'atr3: 'Y'}
console.log(filho.atr0filho.atr1filho.atr2filho.atr3);

const carro = {
    velAtual: 0,
    veloMax: 200,
    aceleraMais(delta){
        if(this.velAtual + delta <= this.veloMax){
            this.velAtual += delta
        }else{
            this.velAtual = this.veloMax
        }
    },
    status(){
        return `${this.velAtual} Km/h de ${this.veloMax}`
    }
}

const ferrari = {
    modelo: 'F50',
    velMax: 324//shadowing (sombreamento)
    
}

const volvo = {
    modelo: 'V40 vue',
    status(){
        return `${this.modelo}${super.status()}`
    }
}
//1° Objeto , 2° um protótipo
Object.setPrototypeOf(ferraricarro)//ferrari tem carro como protótipo
Object.setPrototypeOf(volvocarro)

console.log(ferrari,'\n');
console.log(volvo,'\n');

volvo.aceleraMais(100)
console.log(volvo.status(),'\n');

ferrari.aceleraMais(300)
console.log(ferrari.status());








Nenhum comentário: