Hey @dastrash asi es, en esencia funciones que retornan funciones o funciones que retornan objetos etc, javascript nos ayuda a cambiar un poco de pensamiento como todo es de caraceter publico mucha gente se confunde y ni hablemos del "this", Como las variable en js viven en el ambito que se crean. puedes usar un module pattern.
Código Javascript
:
Ver originalvar objeto = {
mensaje: (function () {
var accion = "llama a",quien = "Juan";
return accion + " " + quien;
}()),
obtenerMensaje: function () {
return this.mensaje;
}
};
objeto.obtenerMensaje(); // "llama a juan"
Y y con prototipos
Código Javascript
:
Ver originalfunction juguete() {
// private member
var nombre = 'carro';
// public function
this.obtenerNombre = function () {
return nombre;
};
}
juguete.prototype = (function () {
// privacidad
var algo = "google";
// publico
return {
obtenerAlgo: function () {
return algo;
}
};
}());
var otroJuguete = new juguete();
console.log(otroJuguete.obtenerNombre());
console.log(otroJuguete.obtenerAlgo());