Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Existe alternativa para o this em uma class

Gostaria de saber se existe uma outra forma de se escrever class sem usar o this e se alguém puder explicar melhor o que é o this eu seria muito grato

4 respostas

Oi Júlio, o this se refere ao objeto q vai ser criado a parti da classe


// Classe
class Usuario {
    constructor(idade, altura) {
        this.idade = idade;
        this.altura = altura;
    }
}

// Objetos
julio = new Usuario(20, 1.80);
felipe = new Usuario(22, 1.75)

O this representa os Objetos julio e felipe

//     this.idade

console.log(julio.idade);  // 20
console.log(felipe.idade); // 22

entendi, mas só é possível fazer isso em uma classe a partir do this ??

solução!

Oi Júlio, beleza?

Aparentemente você não ainda não entendeu a finalidade do this.

De uma forma básica, o this é usado para que membros (propriedades) pertencentes a um objeto possam se conhecer.

Vou dar um exemplo:

class Exemplo {
    metodoA(valor) {
        return valor
    }
}

Temos essa classe chamada de Exemplo e nela um método chamado de métodoA. Digamos que eu queira criar ummétodoB que depende dométodoA. Para que ométodoBsaiba que o métodoAé um membro da classeExemplo eu preciso sinalizar através do this:

class Exemplo {
    metodoA(valor) {
        return valor
    }

    metodoB(valor) {
        return this.metodoA(valor)
    }
}

O this é apenas um nome adotado por boa parte das linguagens orientadas a objetos. Mas você poderia criar sua própria linguagem e utilizar outro nome, ficando, por exemplo, dessa forma: return aqui.metodoA(valor).

O ponto é que vc vai precisar de alguma forma sinalizar no seu código como métodos e atributos vão se conhecer dentro do objeto e a forma adotada na maioria das linguagens é através do this.

Isso aqui é uma resposta bem resumida, se não vou me estender muito e acabar mais atrapalhando do que ajudando. Espero que tenha compreendido um pouco melhor sobre o this.

Bons estudos.

Muito obrigado acho que entendi agora.