Objetos no JS

Classes

classe funciona como um molde, tendo em vista a criação de vários objetos com as mesmas características.

class Cliente
{
    nome;
    cpf;              atributos
    nascimento;
}
                
class Conta
{
    corretora;
    tipo de investimento;        atributos
    saldo;
    nivel;
}
                

Lembre sempre de analisar os objetos a serem criados e abstraia as estruturas.

Construindo / Criando objeto

Para usar uma classe precisamos inicialmente instância-la em uma variável.

const pessoa1 = new Nome()
const pessoa2 = new Nome()

pessoa1.nome = "Hailton";
pessoa1.cpf = 45048007209;
pessoa1.nasimento = 25-04-1996;

pessoa2.nome = "Fulo";
pessoa2.cpf = 99048007209;
pessoa2.nasimento = 25-04-1990;
                
const conta1 = new Conta()

conta1.corretora = "NocInvestimentos";
conta1.tipodeinvestimento = "MercadoAberto";
conta1.saldo = 999.99;
conta1.nivel = "tranquileba";
                

Resultado final de uma consulta realizada a pessoa1.nome e pessoa1.cpf


Desestruct

Cria variáveis a partir de um objeto, util para evitar a referencia extensa, como acima. objeto.atributo

    let { nome, cpf, nascimento } = pessoa1;
                        

Vale lembrar que é necessário que as variáveis tenha o mesmo nome dos atributos, uma vez que o motor do JS, ira buscar como referencia.

Match

Busca valores específicos em uma base de dados onde não se tem muita certeza.

const variavelExemplo = 'Este texto tem um valor a ser procurado 123.456.789-99';

definindo RegExp:
const resultado = new RegExp('[0-9]{3} . [0-9]{3} . [0-9]{3} - [0-9]{2}');

usando match:
console.log(variavelExemplo.match(resultado));
                        

Definindo constructor()

Organizando a sintaxe e protegendo de alterações fora da função.

class Cliente
{
    nome;
    _cpf;
    ...
    
constructor(nome, cpf) { this.nome = nome; this._cpf = cpf; ... }
}
Utilizando

const clienteH = new Cliente("Hailton, 45048007209");
                

Função em Classes

Criando um objeto completo contendo forma e funções

            class Conta
            {
                corretora;
                tipo de investimento;
                saldo;
                nivel;
                
sacar(valor) { if(this.saldo >= valor) {this.saldo -= valor;} } Deposito(valor) { if(valor >=0) {this.saldo += valor;} }
}

Resultado final

Após um saque de R$9 e um deposito de R$9000:

                    conta1.sacar(9)
                    conta1.depositar(9000)
                

Class calculadora

Classe sem atributos e com 2 metodos soma e subtração

class Matematica
{
    soma(valor1, valor2)
    {
        return valor1 + valor2;
    }

    subtracao(valor1, valor2)
    {
        return valor1-valor2;
    }
}
                    

Retorno

O comando return serve para indicar a função a "devolver" a atributo.

Ainda o retorno pode servir para parar a execução de uma função caso a mesma esteja em desconformidade. Promovendo a diminuição de indentação.

                    var somador = 0
                    var atributo = -3
                    if(atributo <=0) return;
                    {this.somador += atributo}
                

Melhorando Função

Mantendo a segurança de variáveis afim que não possam ser alteradas por fora da função.

                    conta.saldo = 180000;
                

_Segurança

Para manter um atributo com a sua manipulação estritamente atrelada as funções de sua classe atribua antes do atributo o "_" ou sua variante "#"

Protegendo atributo

Método set é possível referenciar o tipo de atributo aceitável.

                    set cliente(novoValor)
                    {
                        if(novoValor instanceof Cliente)
                        {this._cliente = novoValor;}
                    }
                

Método get é possível realizar a leitura de determinado atributo. Mas nunca altera-lo.

                    get saldo()
                    {
                        return this._saldo;
                    }
                
                    Utilizando
                    console.log(contaH.saldo)
                

Alteração dos objetos via função

Cuidado com as operações realizadas em funções, essas alteram os objetos já que o mesmo esta sendo passado como referencia.