De acuerdo, busqué en todos los sitios que conocía, usando todas las palabras clave que conocía, pero no encontré nada cercano al tema que busqué, tal vez toda la pregunta sea incorrecta, pero de todos modos...
digamos que tenemos un módulo llamado Index.js , que contiene un STORAGE y dos funciones responsables de leer/escribir en STORAGE .
var STORAGE = [] function writeStorage(data) { STORAGE.push(data) } function readStorage(data) { //find data in STORAGE... and return result as RES return RES } Ahora, dentro de un archivo llamado write.js , importamos writeStorage() .
Mientras que en otro archivo llamado read.js , importamos readStorage() .
Y aquí es donde surge la pregunta,
¿Las funciones importadas desde la misma fuente tienen acceso a sus variables globales de origen?
es decir, ¿podemos modificar STORAGE en index.js usando writeStorage() que importamos en write.js ?
y lea los cambios de STORAGE de read.js usando readStorage() ?.
Quiero dar una respuesta más clara al respecto. Hay dos ámbitos para las funciones: léxico y dinámico. Dinámico significa que una función buscará variables en el área donde fue llamada :
let someVar = 'global'; function dynamicScope () { someVar = 'dynamic'; console.log(somevar); } dynamicalScope(); // will display 'global'Medios léxicos , la función buscará variables donde fue escrito/declarado :
let someVar = 'global'; function lexicalScope () { someVar = 'lexical'; console.log(somevar); } lexicalScope(); // will display 'lexical'Pero en JavaScript, no hay forma de usar el alcance dinámico , por lo que todas las funciones buscarán variables donde se hayan declarado/escrito .
NO PONGAS ATENCIÓN EN LOS DETALLES, ES SOLO UN PSEUDO-CÓDIGO.
Respuesta corta: Sí, eso es posible.