Crie uma aula com o IIFE que não seja uma referência?
Sou novo em JavaScript e estou tentando criar "classes" com dados privados e funções públicas. Foi-me dito Imediatamente Invocado Function Expressions (IIFE) realizar isso, mas quando eu "instanciar" novos objetos da classe que referenciam os dados privados em vez de manter os seus próprios.
Parte disso é emprestada deCriar uma classe JS: IIFE vs return prototype
Por exemplo, uma simples "classe" de carros:
var Car = (function() {
var body = { color: 'red' };
Car.prototype.newColor = function(color) {
body.color = color;
};
Car.prototype.getColor = function() {
return body.color;
};
return Car;
})();
var car1 = new Car();
var car2 = new Car();
A cor do car2 também é alterada para roxo.
car1.newColor('purple');
car2.getColor(); // 'purple'
Eu quero que cada objeto da classe Car mantenha seus próprios dados privados. Como isso pode ser feito com o IFFE ou existe outro caminho?