Escribí el siguiente código (maqueta):
module.exports = { test() { console.log('test') }, iffer(nb) { if (nb !== 0) { this.test() } } }Recibí el error "la prueba no es una función".
Y probé lo siguiente:
let that = this module.exports = { test() { console.log('test') }, iffer(nb) { if (nb !== 0) { that.test() } } }Esta solución aún no funciona ya que los módulos de JavaScript tienen el modo estricto activado de forma predeterminada. ¿Alguien sabe una solución a este problema?
Simplemente haga referencia a module.exports nuevamente.
iffer(nb){ if (nb !== 0) { module.exports.test() } }También puede colocar primero el objeto exportado en una variable independiente para facilitar la referencia. O haga que todas las funciones sean independientes para una fácil referencia, luego exporte un objeto con todas ellas.
const test = () => console.log('test'); const iffer = (nb) => { if (nb !== 0) { test(); } }; module.exports = { test, iffer };Si su entorno es compatible con la sintaxis del módulo ES6, recomendaría usarlos en su lugar.
export const test = () => console.log('test'); export const iffer = (nb) => { if (nb !== 0) { test(); } };