He estado usando node.js desde hace algún tiempo y me di cuenta de que require es una función y un objeto, o eso parece. Puedes hacer lo siguiente:
require('someModule') let a = require.cache //not undefinedHe estado tratando de hacer esto yo mismo, pero no puedo entender cómo. Estas son las cosas que probé:
function a() { console.log('a') } let a = {test: 1} //throws cannot declare variable twiceY lo invirtió
let a = {test:1} function a() { console.log('a') } //still throws Incluso intenté agregar un método toFunction a una clase, crear una instancia de él e intentar llamar a la instancia, que esperaba que funcionara como toString() , pero aún decía a is not a function .
¿Cómo puedo hacer esto yo mismo? Probablemente sea muy simple, pero no pude encontrarlo en ninguna parte mientras investigaba.
Primero declara la función. Las funciones son objetos, por lo que luego puede asignarles una propiedad.
function a() { console.log('a') } a.test = 1; a(); console.log(a.test); Si desea usar la sintaxis literal de objeto en lugar de asignar propiedades individualmente, puede usar Object.assign .
function a() { console.log('a') } Object.assign( a, { test: 1, // other properties } ); a(); console.log(a.test);