Estoy tratando de entender los módulos de JavaScript, pero no estoy seguro de cómo dividir un módulo en otros submódulos. He leído que las funciones anidadas no son realmente una gran idea, debido al rendimiento, entonces ¿cómo puedo dividir una función en un módulo? Por ejemplo, digamos que tengo el siguiente módulo:Patrón de módulo Javascript, funciones anidadas y submódulos
var Editor = {};
Editor.build = (function() {
var x = 100;
return {
bigFunction: function() {
// This is where I need to define a couple smaller functions
// should I create a new module for bigFunction? If so, should it be nested in Editor.build somehow?
}
};
})();
bigFunction está relacionado solo con Editor.build. ¿Debo adjuntar las funciones más pequeñas que componen bigFunction al objeto prototipo bigFunction? Ni siquiera estoy seguro de si eso tendría sentido.
var Editor = {};
Editor.build = (function() {
var x = 100;
return {
bigFunction: function() {
bigFunction.smallFunction();
bigFunction.prototype.smallFunction = function(){ /*do something */ };
// not sure if this even makes sense
}
};
})();
¿Alguien puede arrojarme en la dirección correcta aquí? Hay tanta información engañosa en línea, y solo me gustaría una guía definitiva sobre cómo lidiar con este tipo de modularización.
Gracias.
No parece particularmente útil para mantener el constructor y su prototipo en un cierre, que significa que no puede fácilmente extender o modificar el prototipo más tarde. Es difícil ver ningún beneficio para las declaraciones de funciones estándar y la asignación de prototipos. El patrón del módulo se trata realmente de módulos, es decir, uno: de objetos, no de constructores. – RobG
@RobG: el primero es definitivamente más independiente. La diferencia entre eso y una función estándar será que recuperará objetos únicos. El segundo enfoque es más en línea con un patrón de módulo. Podría poner un tercero en el que se use un prototipo como enfoque de extensión. –
@RobG - ¿Cómo implementa sus módulos en javascript? –