Tengo dos scripts de JavaScript vinculados a mi archivo HTML en este orden:
<script src="first.js"></script> <script src="second.js"></script>first.js tiene una variable a la que accede second.js. Second.js utiliza la variable al final del archivo y la variable se define en first.js al principio. Cada vez que vuelvo a cargar el sitio, aparece un error de consola que dice que la variable en first.js no está definida.
Error de referencia no detectado: dbis no definido en second.js:80
¿Por qué es esto? Gracias de antemano.
Ejemplo completo:
primero.js:
var db = [{name: "Obj1", property: "property1"}, {name: "Obj2", property: "property2"}]; // At Line 8segundo.js:
function loadDbItems() { for(i = 0; i < db.length; i++) { console.log(db[i].name); // Line is Near End of Script } }Puede registrar la variable con window para que sea global garantizada.
Vea el ejemplo de guión a continuación.
No debe contaminar el objeto de la window con cada pequeña variable que necesite, pero de esta manera la variable existirá en todos los scripts, siempre que el primero se ejecute primero.
window.db = [{name: "Obj1", property: "property1"}, {name: "Obj2", property: "property2"}]; <html> <body onload="loadDbItems()"> <script> function loadDbItems() { for(var i = 0; i < window.db.length; i++) { console.log(window.db[i].name); } } </script> </body> </html>