Durante a aula 2 no segundo vídeo, o Ricardo Bugan comenta sobre como ainda não foram implementados atributos privados no JS, porém as aulas foram gravadas em 2019, gostaria de saber se e como essa implementação foi feita.
Durante a aula 2 no segundo vídeo, o Ricardo Bugan comenta sobre como ainda não foram implementados atributos privados no JS, porém as aulas foram gravadas em 2019, gostaria de saber se e como essa implementação foi feita.
Oi Renato, tudo bem?
Ainda é uma proposta que está no estágio 3, você pode ler mais sobre ela aqui. Ainda se discute bastante a implementação, porém, no momento, ainda continua com o símbolo de cerquilha (#) na frente da variável para indicar que ela é um atributo privado.
Essa funcionalidade está disponível em alguns navegadores e no NodeJS (versão 12+), portanto você pode testar, veja abaixo o código:
class Classe {
a = 1; // 'a' é público
#b = 2; // #b é privado
incrementa() {
this.#b++;
}
}
const number = new Classe();
number.incrementa();
number.#b = 0; // Erro!
Quando tentamos alterar o valor de #b
para 0, fora da classe (é um atributo privado), o erro que encontramos é esse aqui:
Significando que não podemos alterar um atributo privado fora da classe.
Espero ter ajudado, bons estudos =)
Muito obrigado Geovanna!