Por lo tanto, no creo que haya una "respuesta correcta" a esta pregunta ... es básicamente lo que usted prefiere y cree que es mejor para su uso particular. Muchas de mis clases son "Clases estáticas", p.
var MyClassName = {
methodName: function() { },
//...
}
Como nunca tengo que crear una instancia de ellos. Cuando necesito instanciar instancias múltiples, uso el método prototipo.
Si NECESITA variables privadas, podría definir una función/clase para hacer variables privadas, y los métodos que necesitan acceder a los vars privados dentro de esa función/clase. Luego, use el método prototipo para todos los métodos que no necesiten acceso a los vars privados. P.ej.
var PageClass = function() {
var _birthdate;
this.getBirthdate = function() {
return typeof(_birthdate) == "undefined" ? null : _birthdate;
}
this.setBirthdate = function(date) {
if(typeof(date) == 'object' && date.constructor == Date) {
_birthdate = date;
}
else {
throw "Invalid Argument Exception: PageClass.setBirthdate expects parameter of type 'Date'";
}
}
}
PageClass.prototype.doSomething = function() {
alert("DOING SOMETHING");
}
Hacer ambas cosas debe permitirle mantener su instanciación de peso un poco más ligero, pero aún así darle un poco de encapsulación. Hasta ahora, nunca me he molestado con los vars privados.
Lea aquí: http://www.crockford.com/javascript/inheritance.html –
también esto: http://javascript.crockford.com/ private.html –
Eche un vistazo a [Fundamentos de OOP] (http://stackoverflow.com/questions/5134208/jquery-oop-basics/5134494#5134494) – Raynos