Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que as opções de preenchimento das variáveis foram usadas de formas diferentes?

class User {

    constructor (nome, email, nascimento, role, ativo = true) {
        //  Em "ativo": pode vir 'false', mas se não vier nada será 'true'

        this.nome = nome;
        this.email = email;
        this.nascimento = nascimento;
        this.role = role || 'estudante';
            //  Em "this.role": pode vir 'admin', mas se não vier nada será 'estudante'
        this.ativo = ativo;
        
    }
}

Tam alguma diferença atribuir a opção dentro do parâmetro ou na hora da atribuição? Tem alguma diferença? Qual?

1 resposta
solução!

Olá, Diógenes!

Na estrutura da classe que você compartilhou, existem duas formas diferentes de atribuir valores às propriedades: dentro do parâmetro do construtor e na hora da atribuição. Vamos entender?

No caso do parâmetro do construtor, você pode passar os valores diretamente quando criar uma instância da classe. Por exemplo:

const user1 = new User('João', 'joao@example.com', '1990-01-01', 'admin', false);

Nesse exemplo, os valores 'João', 'joao@example.com', '1990-01-01', 'admin' e false são atribuídos às respectivas propriedades da classe User.

Por outro lado, na hora da atribuição, você pode definir um valor padrão para a propriedade caso nenhum valor seja passado no construtor. Por exemplo:

this.role = role || 'estudante';

Nesse caso, se o valor de role não for passado no construtor, a propriedade role será atribuída como 'estudante' por padrão.

A diferença entre as duas formas é que, ao passar um valor no construtor, você está definindo explicitamente o valor da propriedade para aquela instância específica da classe. Já ao definir um valor padrão na atribuição, você está definindo um valor que será usado caso nenhum valor seja passado no construtor.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!