Tengo un problema intentando que las variables de clase funcionen en javascript.Variables de clase en Javascript
Pensé que entendía el prototipo de modelo de herencia, pero obviamente no. Supuse que como los prototipos se compartirían entre los objetos, también lo harían sus variables.
Es por eso que este código me confunde.
¿Cuál es la forma correcta de implementar variables de clase?
function classA() {};
classA.prototype.shared = 0;
a = new classA;
//print both values to make sure that they are the same
classA.prototype.shared;
a.shared;
//increment class variable
classA.prototype.shared++;
//Verify that they are each 1 (Works)
classA.prototype.shared;
a.shared;
//now increment the other reference
a.shared++;
//Verify that they are each 2 (Doesn't Work)
classA.prototype.shared;
a.shared;
ACTUALIZACIÓN: por lo que parece que todo el mundo está confirmando el hecho de que mediante el incremento de la variable de la instancia que no afectan al prototipo. Esto está bien, esto es lo que he documentado en mi ejemplo, pero ¿no parece esto un error en el diseño del lenguaje? ¿Por qué sería este comportamiento deseable? Me parece extraño que cuando la var de la instancia no está definida seguimos el enlace oculto al prototipo donde obtenemos el valor de la var, pero lo copiamos en el objeto instancia.
También entiendo que esto no es java/C++/ruby / python, es un idioma diferente. Solo tengo curiosidad sobre por qué este comportamiento podría ser bueno.
Le sugiero que lea esto: http://www.3site.eu/doc/ – kentaromiura