Há um tempo atrás li que para criar um atributo privado de uma classe, bastava cria-lo como var
ao invés de passar um this
. Por exemplo:
class Carro {
var velocidade = 10;
this.acelerar = function(x) {
velocidade +=x;
}
this.desacelerar = function(x) {
velocidade -= x;
}
}
Dessa forma a velocidade
só poderia ser modificada com os métodos de acelerar e desacelerar.
No curso é dito que existe a convenção de colocar um underline(_) na frente do atributo para indicar que é um atributo privado, mas nada impede efetivamente de ele ser acessado e/ou modificado.
Se não me engano, com TypeScript podemos usar o modificador de acesso private
, mas isso é assunto pra outro curso.
Quais são as formas de tornar um atributo privado? Quando pergunto isso também gostaria de saber as formas pré-ES6, pós-ES6, good-patterns e bad-patterns.