2012-08-23 18 views
6

Estoy escribiendo un módulo node.js que exporta dos funciones y quiero llamar a una función desde la otra, pero veo un error de referencia no definido.Node.js: Llamar a una función exportada desde otra en el mismo módulo

¿Hay un patrón para hacer esto? ¿Acabo de hacer una función privada y envolverla?

Aquí hay un código de ejemplo:

(function() { 
    "use strict"; 

    module.exports = function (params) { 
     return { 
      funcA: function() { 
       console.log('funcA'); 
      }, 
      funcB: function() { 
       funcA(); // ReferenceError: funcA is not defined 
      } 
     } 
    } 
}()); 

Respuesta

8

me gusta de esta manera:

(function() { 
    "use strict"; 

    module.exports = function (params) { 
     var methods = {}; 

     methods.funcA = function() { 
      console.log('funcA'); 
     }; 

     methods.funcB = function() { 
      methods.funcA(); 
     }; 

     return methods; 
    }; 
}()); 
+1

utilizo un 'var _PUBLIC = {};' y '_privat var = {};' y devolver el '_public', que agrega cierta legibilidad. –

+2

O simplemente puede usar 'this.funcA()' ... – d11wtq

+0

¿Qué hace el "uso estricto" aquí, por cierto? – d11wtq

Cuestiones relacionadas