¿Hay alguna forma de 'obtener' una clase/función/variable declarada dentro de una función? ejemplo:
() => { class foo{ } const bar = () => { console.log("Can print from outside?") } } //Any way to make this possible?: console.log(new foo()) bar()Nota: no se puede cambiar la función anónima (relacionada con la inyección)
JS tiene un alcance léxico, no puede acceder a una variable local fuera de su función. es posible que desee comprobar los cierres
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures
¡Esto es realmente raro!, pero si no le importa otra instancia del código, puede simplemente obtener la fuente actual y envolverla dentro de una función que expone el foo & bar.
p.ej..
const anom = () => { class foo{ } const bar = () => { console.log("Can print from outside?") } } let code = anom.toString(); code = code.slice( code.indexOf('{') + 1, code.lastIndexOf('}') ) + 'return {foo, bar}'; const f = new Function(code); const {foo, bar} = f(); bar(); var fooInst = new foo(); console.log(fooInst);