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

A utilização do # ja foi aprovado ( dica )

A utilização do # para variáveis privadas, ja foi implementado, acredito que seria muito legal se atualizassem essa aula explicando novamente sobre o # e utilizando também.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields

13 respostas

Valeu Felipe .Testei aqui e foi implementado mesmo, também acho que seria legal se atualizassem esta aula, até por que muitas pessoas que acompanham o curso só saberia disso se olhassem este post ou pesquisando por conta própria :)

Tava prestes a comentar exatamente sobre isso! Como é bem recente (14 de fevereiro de 2022), entendo que ainda não atualizaram, mas seria muito bom deixar tudo conforme o novo ECMA pros futuros Devs terem noção que esses "Private class features" já foram implementados no JavaScript base

Arthur Resende, como você testou?

Apareceu o valor no saldo?

poderia mostrar o código como você fez para testar?

Então Marcus, aceitar o uso do # aceita. O problema foi justamente para aparecer o saldo. Quando eu coloco só "Ricardo" no console.log não aperece saldo algum, mas quando eu coloco ex: "Ricardo.#saldo", aparece um erro falando que o campo é privado. Dei uma pesquisada rápida e acho que possui um jeito de inicializar ela se não me engano, mas não entrei nesse assunto não, fiz do sem o uso do # mesmo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Vocês tem certeza que isso foi aprovado oficialmente pela linguagem? Ou é uma atualização do node.js que oficializou mas somente na execução desse programa?

solução!

Fala Yuri! A implementação se tornou oficial mesmo, dá pra consultar melhor a documentação da nova edição do ECMAscript no link: https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-PrivateIdentifier

Vlw Arthur!!!

Boa. Vim pesquisar por isso.

Muito bom pessoal!! Bom saber que já foi implementado!!!

Galera, muito obrigada pela confirmação!!!

Wow obrigado! Só uma duvida; no caso escrevo todo o código de depois utilizo o '#' para proteger a informação seria uma etapa final? Como faço para testar a movimentação com o campo protegido? gostaria de poder adicionar antes pra não ter de ficar revisando se coloquei ou não, seria melhor pra mim já marcar os campos protegidos na definição do mesmo. Acho...

Olá Cláudio, tudo bem?

Essa foi uma dúvida que surgiu pra mim também. Porque, quando criamos um atributo com #, ele fica invisível ao consultar o objeto.

A solução é mais simples, você vai criar um assessor para fazer essa consulta:

#saldo = 0;

get saldo() {
    return this.#saldo;
}

Quando você for consultar o saldo, você vai chamar:

console.log(contaCorrenteAlice.saldo); // 150

Outra observação interessante é que o atributo é privado (#) e não tem um assessor de set logo, não há formas de mudar o valor do saldo.

Entendi, muito obrigado!