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

instanciando valor default

Professor, caso eu queira que no construtor uma propriedade receba um valor caso não seja passado por parâmetro como eu faço? exemplo eu tenho uma classe pessoa com com os atributos nome e idade. porém caso ano insira uma idade no construtor a mesma terá que ter um valor 0. isso é possível?

2 respostas
solução!

Olá, Thiago.

Antigamente, você poderia fazer assim:

class Pessoa {
    constructor(nome, idade) {
        this.nome = nome;
        this.idade = idade || 0;
    }
}

Perceba o || na expressão que seta a idade. É um OU. Se o argumento idade estiver definido, esse valor é usado. Senão, é usado o que está depois do ||.

Agora, desde o EcmaScript 6, de 2015, o JavaScript tem parâmetros default.

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

Perceba o = na definição do argumento idade!

Vale a partir do Chrome 49, Firefox 15 e Edge 14.

Referência: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters

Oi Thiago! O Alexandre respondeu com maestria à sua pergunta. Você pode usar o truque com || ou usar o default parameter do JavaScript. Como você esta fazendo um curso de ES2015, pode utilizar essa abordagem.

Não deixe de marcar a resposta do Alexandre como solução se estiver tudo certinho!

Sucesso e bom estudo meu aluno!