Usando la herencia clásica de JS no vas a poder implementar properties privadas sin inyectarlas en un closure (como haces en el ejemplo).
A lo que hacia referencia, es que cuando usas este tipo de construcciones (la del ejemplo que das), la instanciación/creación de objetos no reutiliza las funciones, con su consecuente costo en memoria.
Código Javascript
:
Ver originalvar A = function() {};
A.prototype.foo = function() {};
var a1 = new A;
var a2 = new A;
a2.foo === a2.foo; // true
var B = function() { this.foo = function() {} };
var b1 = new B;
var b2 = new B;
b1.foo === b2.foo; // false
Por lo demás, en lo personal me conformo con la privacidad por convención en ausencia de la privacidad por implementación.