Al implementar el patrón del módulo, ¿cómo acceden las funciones privadas a las propiedades privadas del módulo? No he visto ejemplos donde los desarrolladores hagan esto. ¿Hay alguna razón para no hacerlo?Patrón de módulo de JavaScript: ¿Cómo acceden los métodos privados al alcance del módulo?
var module = (function(){
// private property
var number = 0;
// private method
_privateIncrement = function(){
// how do I access private properties here?
number++;
};
// public api
return {
// OK
getNumber: function(){
return number;
},
// OK
incrNumber: function(){
number++;
},
// Doesn't work. _privateIncrement doesn't have
// access to the module's scope.
privateIncrNumber: function(){
_privateIncrement();
}
};
})();
Funciona bien: http://jsfiddle.net/DREKt/ Aunque es probable que desee anteponer '_privateIncrement' con una declaración' var'. – Dennis
si 'number' no estaba vinculado en el cierre del módulo, y era parte del objeto, entonces podría necesitar usar' apply() 'o' call() 'para invocar el método privado en el contexto correcto. '_privateIncrement.call (this)' –