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

Qual significado de '${this.nome}'

Na explicação do exercício 24, encontro este método obterNomeCompleto. Porém não entendi o trecho com '${this.nome}' poderiam me explicar?

class Pessoa {
    constructor(nome, sobrenome) {
        this.nome = nome;
        this.sobrenome = sobrenome;
    }
    obterNomeCompleto() {
        return `${this.nome} ${this.sobrenome}`;
    }
}
1 resposta
solução!

Dentro de métodos de uma classe, você pode acessar as propriedades da classe através da palavra reservada e implícita this. Então, quando você faz this.nome esta acessando a propriedade nome da classe que recebeu um valor através de seu construtor.

Agora, vejamos o seguinte:

 obterNomeCompleto() {
        return `${this.nome} ${this.sobrenome}`;
    }

O método obterNomeCompleto esta retornando uma string, mas não é qualquer stirng, mas uma template string, novidade do ES2015.

O mesmo código sem usar template string e usando a chata concatenação ficaria assim:

 obterNomeCompleto() {
        return this.nome + " " + this.sobrenome;
    }

Template string permite interpolar uma valor dentro da string usando ${nomeDaVariavelOuPropriedade}. Mas para funcionar, você não pode usar aspas simples ou aspas duplcas, tem que usar crase no início e no final. É assim que o JavaScript sabe diferenciar uma string normal de uma template string.

Por fim, outro exemplo que você pode fazer no terminal:

let nome = 'Flávio';
let idade = 18;
let msg = `O ${nome} tem ${idade} anos`;
alert(msg); // exibe "O Flávio tem 18 anos".

Sucesso e bom estudo Douglas.