Tenemos un objeto global en javascript al que podemos referirnos usando una window para acceder a cualquier variable global. Pero, ¿cómo hacer referencia al objeto de alcance del módulo donde se almacenan todas las variables en ese módulo?
En realidad, necesito referirme a un objeto importado en el módulo usando una cadena. Si fuera una variable global, simplemente podría haber hecho esto,
let object_I_want = window[string]; Pero para el módulo, no puedo encontrar la referencia para dicho objeto. También intenté usar this ,
var scope = this; somefunction(){ let object_I_want = scope[string]; } Pero, this no está definido dentro del contexto del módulo de acuerdo con la especificación. ¿Hay alguna manera de hacer referencia al alcance del módulo/objeto del módulo como window .
Creo que otra forma de formular su pregunta podría ser: "¿Cómo puedo acceder a las variables de alcance usando cadenas?", Y la respuesta es "No es posible en JavaScript".
Si realmente necesita este tipo de flexibilidad dinámica con sus valores, debe asignarlos todos a un objeto de nivel superior (y debe exportar ese objeto desde su módulo si desea acceder a él y a sus valores fuera del módulo). O use eval , si es compatible con su entorno.
No existe tal objeto para los módulos. El alcance del módulo es como el alcance de una función: un registro de entorno al que no puede acceder desde JavaScript, solo puede usarlo para declarar variables.
Hay un objeto que contiene todos los nombres export de un módulo (que puede obtener haciendo una import * as … from … ), pero esto no parece ser lo que desea.