Però se "doSomething" deve modificare la variabile privata quella soluzione non va più bene.

Volevo approffondire una cosa, come mai dici che non ha senso definire il prototype direttamente dentro la classe?
Mi sembra sia l'unico modo per accedere alle variabili private della classe, ma a livello di interpretazione del codice da parte del browser cambia qualcosa ridefinire il prototype fuori o dentro la classe?