1
resposta

Porque manter os atributos se já há o construtor?

A minha dúvida é a seguinte: em muitos locais eu vejo dentro da classe apenas a função construtora que já define quais os atributos que serão passados na criação do objeto. Assim, uma classe exemplo ficaria

class Pessoa{
    constructor(nome, cpf, idade){
        this.nome = nome
        this.cpf = cpf
        this.idade = idade
    }
}

No entanto, no caso de Cliente, há os atributos nome e cpf e depois a função construtora.

class Cliente{
    nome
    _cpf

    get cpf(){
        return this._cpf
    }

    constructor(nome, cpf){
        this.nome = nome
        this._cpf = cpf
    }
}

Por que não poderia ser apenas o código abaixo (sem os atributos inicialmente)?

class Cliente{
    get cpf(){
        return this._cpf
    }

    constructor(nome, cpf){
        this.nome = nome
        this._cpf = cpf
    }
}
1 resposta

Fala ai Pedro, tudo bem? Ambos teriam o mesmo resultado, no mundo Java e tradicional OO é a gente precisava definir os atributos na classe para depois instanciá-los no construtor.

Com JavaScript, vários aspectos do paradigma OO é diferente e muitas vezes existem várias pegadinhas.

Espero ter ajudado.