Pesquisar neste blog

19/07/2020

Herança 04 em JavaScript


function MeuObjeto() {}
console.log(MeuObjeto.prototype);

const obj1 = new MeuObjeto
const obj2 = new MeuObjeto
console.log(obj1.__proto__ === obj2.__proto__);
console.log(MeuObjeto.prototype === obj1.__proto__);

MeuObjeto.prototype.nome = 'Anônimo'
MeuObjeto.prototype.falar = function(){
    console.log('Bom dia! Meu nome é ',this.nome);
}

obj1.falar()//imprimindo

obj2.nome = 'Henrique'
obj2.falar()

const obj3 = {}
obj3.__proto__ = MeuObjeto.prototype
obj3.nome = 'Obj3'
obj3.falar()

//
console.log((new MeuObjeto).__proto__ === MeuObjeto.prototype);
console.log(MeuObjeto.__proto__ == Function.prototype);
console.log(Function.prototype.__proto__ === Object.prototype);
console.log(Object.prototype.__proto__ == null);


Herança 03 em JavaScript

const pai = {nome: 'Pedro'corCabelo: 'Castanho'}
const filha1 = Object.create(pai)
filha1.nome = 'Ana Paula'
console.log(filha1.corCabelo);

const filha2 = Object.create(pai, {
    nome:{
        value: 'Bia',
        eritable: false
        enumerable: true
    }
})
console.log(filha2.nome,'\n');

console.log(Object.keys(filha1));//chave retorna nome
console.log(Object.keys(filha2));

for (let  key in filha2) {
    filha2.hasOwnProperty(key) ?
        console.log(key) : console.log(`Por herança: ${key}`);
}



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());








Herança 01 em JavaScript

const ferrari = {
    modelo: '40',
    velMax: 324
}

const volvo = {//objeto literal
    modelo: 'V40',
    velMax: 200
}
//indefinido, porque objeto ferrari não tem atributo prototype
console.log(ferrari.prototype);

//procura em toda cadeia de protótipo de ferrari
console.log(ferrari.__proto__);//consegue acessar quem é o prototipo de ferrari
console.log(ferrari.__proto__ === Object.prototype);//é extritamente protótipo de ferrari ?
console.log(volvo.__proto__ === Object.prototype);
console.log(Object.prototype.__proto__);//Objeto prototype tem um protótipo depois dele ?

function MeuObjeto() {}

console.log(typeof Objecttypeof MeuObjeto);
console.log(Object.prototypeMeuObjeto.prototype);












Palavras chave:

Belangrijke objectfuncties in JavaScript
Important Object Functions in JavaScript
Các hàm đối tượng quan trọng trong JavaScript
פונקציות חשובות של אובייקטים ב- JavaScript
ฟังก์ชั่นวัตถุที่สำคัญใน JavaScript
Důležité funkce objektu v JavaScriptu
Imisebenzi Ebalulekile Yento kuJavaScript
Ważne funkcje obiektu w JavaScript
በጃቫስክሪፕት ውስጥ አስፈላጊ የነገሮች ተግባራት
Fonctions d'objets importantes en JavaScript
Wichtige objektfunksjes yn JavaScript
Funksionet e rëndësishme të objektit në JavaScript

Funções importantes de Objeto em JavaScript

const pessoa = {//notação literal
    nome: 'Rebeca',
    idade: 2,
    peso: 13
}

console.log(Object.keys(pessoa));//todas as chaves do objeto pessoa
console.log(Object.values(pessoa));//valores do objeto
console.log(Object.entries(pessoa));//array com todos os subArray com as chave e valor

console.log();
Object.entries(pessoa).forEach(e =>{//percorre o array de pessoa
    console.log(`${e[0]}${e[1]}`);//chave e valor
})

console.log();
Object.entries(pessoa).forEach(([chavevalor]) =>{
    console.log(`${chave}${valor}`);
})

console.log();
Object.defineProperty(pessoa'dataNascimento',{//define a propriedade para ser ou não alterada
    enumerable: true,//true para alterar
    writable: false,//true para alterar
    value: '01/01/2019'
}) 

pessoa.dataNascimento = '01/01/2017'
console.log(pessoa.dataNascimento);
console.log(Object.keys(pessoa));

//Object.assingn (ECMScript a partir de 2015)
console.log();

const dest = {a: 1}
const o1 = {b: 2}
const o2 = {c: 3a: 4}
const obj = Object.assign(desto1o2)
console.log(obj);

Object.freeze(obj)//congela o objeto
obj.c = 1234//nao vai alterar esse valor
console.log(obj);



















Palavras chave:

Важныя функцыі аб'ектаў у JavaScript
פונקציות חשובות של אובייקטים ב- JavaScript
Mahinungdanon nga Mga Function sa Object sa JavaScript
Wichtige Objektfunktionen in JavaScript
Važne funkcije objekta u JavaScript-u
Funcții importante ale obiectului în JavaScript
Важные функции объекта в JavaScript
Важные функции объекта в JavaScript
Important Object Functions in JavaScript
Belangrijke objectfuncties in JavaScript

17/07/2020

Função importante com Object em JavaScript

const pessoa = {//notação literal
    nome: 'Rebeca',
    idade: 2,
    peso: 13
}

console.log(Object.keys(pessoa));//todas as chaves do objeto pessoa
console.log(Object.values(pessoa));//valores do objeto
console.log(Object.entries(pessoa));//array com todos os subArray com as chave e valor

console.log();
Object.entries(pessoa).forEach(e =>{//percorre o array de pessoa
    console.log(`${e[0]}${e[1]}`);//chave e valor
})

console.log();
Object.entries(pessoa).forEach(([chavevalor]) =>{
    console.log(`${chave}${valor}`);
})

console.log();
Object.defineProperty(pessoa'dataNascimento',{//define a propriedade para ser ou não alterada
    enumerable: true,//true para alterar
    writable: false,//true para alterar
    value: '01/01/2019'
}) 

pessoa.dataNascimento = '01/01/2017'
console.log(pessoa.dataNascimento);
console.log(Object.keys(pessoa));

//Object.assingn (ECMScript a partir de 2015)
console.log();

const dest = {a: 1}
const o1 = {b: 2}
const o2 = {c: 3a: 4}
const obj = Object.assign(desto1o2)
console.log(obj);

Object.freeze(obj)//congela o objeto
obj.c = 1234//nao vai alterar esse valor
console.log(obj);



Getters e Setters em JavaScript

//get para ler e set para alterar o valor de uma variável
const sequencia = {
    _valor: 1//convenção, variavel acessível apenas internamente
    get valor(){return this._valor++},//função em cima de um valor
    set valor(valor){
        if(valor > this._valor){
            this._valor = valor
        }
    }

}

console.log(sequencia.valorsequencia.valor);
sequencia.valor = 1000
console.log(sequencia.valorsequencia.valor);
sequencia.valor = 900
console.log(sequencia.valorsequencia.valor);


16/07/2020

Objetos constantes em JavaScript

//pessoa aponta ->123 ->{...}
const pessoa = {nome: 'João'}
pessoa.nome = 'Pedro'
console.log(pessoa);

//pessoa aponta para novo objeto(endereço)
//pessoa = {nome: 'Ana Paula'}

Object.freeze(pessoa)//está congelando objeto pessoa, não consegue + mexer em pessoa
pessoa.nome = 'Jenifer'
pessoa.end = 'Rua ABC'
delete pessoa.nome

console.log(pessoa.nome);
console.log(pessoa);

//objeto constante, nenhuma constante ou objeto pode ser mudado
const pessoaConstante = Object.freeze({nome: 'João'})//objeto não pode ser mudado
pessoaConstante.nome = 'MARILENE'//testando novo nome
console.log(pessoaConstante);


15/07/2020

Novos Objetos em JavaScript

//usando a notação literal, método 1
const obj1 = {}
console.log(obj1);

//Object em JS
console.log(typeof Object);//função
console.log(typeof Objecttypeof new Object);//função construtora

//Novo objeto, método 2
const obj2 = new Object('Aline')//ou new Object
console.log(obj2);

//funções construtoras
function Produto(nomeprecodesconto) {
    this.nome = nome //atributo público
    this.getPrecoComDesconto = () =>{//privado dentro da função
        //vísivel fora da instancia
        return preco * (1desconto)
    }
}

const p1 = new Produto('Caneta',7.99,0.15)
console.log('\nP1\n',p1);

const p2 = new Produto('Notebook',25000.25)
console.log('\nP2\n',p2);

console.log();
console.log(p1.getPrecoComDesconto(), p2.getPrecoComDesconto);

//função Factory
function novoFuncionairo(nomesalarioBasefaltas) {
    return{
        nome,
        salarioBase,
        faltas,
        getSalario(){
            return (salarioBase/30) * (30 - faltas)
        }
    }
}

const f1 = novoFuncionairo('João'79804)
const f2 = novoFuncionairo('Alinee',114001)
console.log('Salário Líquido de f1 = ',f1.getSalario(),'R$');
console.log('Salário Líquido de f2 = ',f2.getSalario(),'R$');

//método 3
const filha = Object.create(null)
filha.nome = 'Gabriele Santos'
console.log('\n',filha);

//Uma Função que retorna um objeto
const fronJSON = JSON.parse('{"info": "Sou um JSON"}')//converte o texto em 1 objeto e inseriu na variável fronJSON
console.log(fronJSON.info);




















Palavras chave:

Nouveaux objets JavaScript
كائنات جافا سكريبت جديدة
Νέα αντικείμενα JavaScript
Nuovi oggetti JavaScript
Новые объекты JavaScript
Nové objekty JavaScriptu
Nya JavaScript-objekt
Bag-ong Mga butang sa JavaScript
אובייקטים חדשים של JavaScript
Новыя аб'екты JavaScript

Objeto em JavaScript


//Objeto é coleção dinâmica de pares chave/valor
const produto = new Object
produto.nome = 'Cadeira'
console.log(produto);//imprimi tudo de objeto
console.log(produto.toLocaleString());
produto['Marca do produto'] = 'Generico'
produto.preco = 220

console.log(produto);
console.log(produto.preco);//acessa o preço do produto

delete produto['Marca do produto']//deletando um atributo
console.log(produto);

const carro = {
    //atributos
    modelo: 'Golf',
    valor: 50000,
    proprietario:{//par chave valor que tem outros atributos
        nome: 'Raul',
        idade: 50,
        endereco: {
            logradouro: 'Rua A',
            numero: 77
        }
    },
    condutores:[{//atributo com array par chave e valor
        nome: 'Ana Paula',
        idade: 34
    },{
        nome: 'Aline Queiroz',
        idade: 32
    }],
    calcularValorSeguro: function(){
        //... uma função qualquer aqui
    }
}

carro.proprietario.endereco.numero = 100//nome do atributo que deseja acessar
carro['proprietario']['endereco']['logradouro']
console.log(carro);

delete carro.condutores //deletando tudo de atributo condutores
delete carro.proprietario.endereco//deletando  atributo endereco de proprietário

console.log();
console.log(carro);

delete carro.condutores
delete carro.proprietario.endereco
delete carro.calcularValorSeguro
console.log(carro);

console.log(carro.condutores);//foram excluídos, irá undefined
console.log(carro.proprietario.length);//tamanho desse array



14/07/2020

Call & Apply em JavaScript

function getPreco(imposto = 0moeda'R$') {
    return `${moeda} ${this.preco = (1 -this.desc) * (1 + imposto)}`
}

const produto = {
    nome: 'Ventilador',
    preco: 8090,
    desc: 0.15,
    getPreco
}
global.preco = 20
global.desc = 0.1
console.log(getPreco());
console.log(produto.getPreco());

// do call e apply
const carro = {preco: 7788desc: 0.20}
console.log('\n',carro);
console.log(getPreco());
console.log(getPreco.call(carro));

//appy
console.log('\n',getPreco.apply(carro));

console.log(getPreco.call(carro0.17"$"));
console.log(getPreco.apply(global, [0.17],'$'));//apply dentro de um array




Classe vs Funcão Factory em JavaScript

class Pessoa{
    constructor(nome){
        this.nome = nome//torna publico
    }

    falar(){
        console.log('1- Meu nome é: ',this.nome);
        console.log(`2- Meu nome é: ${this.nome}`);
    }
}
const p1 = new Pessoa('João')
p1.falar()
console.log(p1);//imprimindo o objeto



Função Factory em JavaScript

//Factory é uma função que retorna um objeto
function Pessoa() {
    return{
        nome: 'Karolayme meu AMOR',
        sobrenome: 'Silva'
    }
}

console.log(Pessoa());

function Produto(nomepreco) {
    return {
        nome,
        preco
        desconto: 0.1//caso não passe nenhum valor
    }
}

console.log(Produto('Notebook',2500));
console.log(Produto('iPad',1575.7));


Closures em JavaScript

//Closure é  o escopo criado quando uma função é declarada
//Esse escopo permite a função acessar e manipular variáveis

//Contexto léxico em ação!
const x = 'Global'

function fora() {
    const x = 'Local'
    function dentro() {
        return x;
    }
    return dentro
}

console.log(fora());

const minhaFuncao = fora()
console.log(minhaFuncao());//acessa o funcao da variavel local




13/07/2020

Tipos de declaração em JavaScript

//função declarativa
console.log(soma(34));
//console.log(mult(4,5));//exibe erro pois executa do tipo topDow
function soma(xy) {
    return x + y
}

//função expressiva
const sub = function(xy){
    return x - y;
}

//nome de function expressiva
const mult = function mult(xy){
    return x + y;
}
console.log(mult(3,7));//a partir daqui executa



Funções construtoras em JavaScript

function Carro(velocidadeMax = 200delta = 5) {
    let velocidadeAtual = 0

    //método público
    this.acelerar = function(){
        if (velocidadeAtual + delta <= velocidadeMax) {
            velocidadeAtual += delta
        }else{
            velocidadeAtual = velocidadeMax
        }

    }
    this.getVelocidadeAtual = function(){ //permite o acesso por essa função
        return velocidadeAtual;
    }
}

const uno = new Carro
//const uno = new Carro()
uno.acelerar()
console.log(uno.getVelocidadeAtual());

const ferrari = new Carro(35020)
ferrari.acelerar()
ferrari.acelerar()
ferrari.acelerar()
console.log(ferrari.getVelocidadeAtual());

console.log(typeof Carro);//retorna como uma função
console.log(typeof ferrari);//retorna como um objeto


12/07/2020

Função CallBack 2 em JavaScript

//objetivo: selecionar todas as menores que 7
const notas = [7.78.36.55.28.93.67.19.8]
//sem callback
let notasBaixas1 = []//vetor
for(let i in notas){
    if(notas[i] < 7){
        notasBaixas1.push(notas[i])
    }
}
console.log('Método 1:');
console.log(notasBaixas1);

//com Callback
notasBaixas2 = notas.filter(function(nota){
    return nota < 7
})
console.log('\nMétodo 2:');
console.log(notasBaixas2);

const notasBaixas3 = notas.filter(nota => nota < 7)
console.log("\nMétodo3: \n",notasBaixas3);


Função Callback em JavaScript

const fabricantes = ["Mercedes","Audi","BMW"];

function imprimir(nomeindice) {
    console.log(`${indice + 1}${nome}`);
}

fabricantes.forEach(imprimir)
console.log();
fabricantes.forEach(fabricante => console.log(fabricante))











Função anônima em JavaScript

const soma = function(xy){
    return x + y;
}

const imprimiResultado = function(aboperacao = soma){
    console.log(operacao(ab));
}

imprimiResultado(34)
imprimiResultado(34soma)
imprimiResultado(35function(xy){
    return x - y
})

imprimiResultado(34,(x,y)=> x * y)

const pessoa = {//Função anônima dentro de um objeto
    falar(){
        console.log('Olá JavaScript');
    }
}
pessoa.falar()

const teste = {
    fale: function(){
        console.log('Olá blog da engenhariaCotidiana');
    }
}
teste.fale()











Palavras chave:

Anonim JavaScript işlevi
Anonym JavaScript-funktion
Anonyymi JavaScript-toiminto
د جاواسکریټ نامعلوم فعالیت
Anonimowa funkcja JavaScript
Функция анонимного JavaScript
Ανώνυμη συνάρτηση JavaScript
وظيفة جافا سكريبت مجهولة
Fonction JavaScript anonyme