When I run the following code I get the error: "Uncaught ReferenceError: testVariable is not defined"
eval("var testVariable = 0");
console.log(testVariable);
However, when I run this in for example CodeSnippets it works perfectly fine. Hence I am very confused.
My index.html simply has an import: <script type="module" src ="./classes.js"></script>
. Do note that I have simplified the issue down to it's concepts as I am actually using eval() to dynamically create variables.
Edited to add something closer to my actual code as commenters are asking why I want to dynamically make variables:
variables.js
import { exampleClass } from './classes.js';
import{createExampleClasses} from './classes.js';
export let classesArray =[];
createExampleClasses();
classes.js
import { classesArray } from "./variables.js";
let WaitForElement = element =>{if (typeof element !== "undefined"){ console.log(element); }else{setTimeout(WaitForElement(),250)}};
export class exampleClass{
constructor(name){
this.name=name;
}
}
export function createExampleClass(){
let exampleObject = "exampleObject"+classesArray.length.toString();
eval( "let "+ exampleObject + " = new exampleClass(\"random\");");
classesArray.push(eval(exampleObject));
}
export function createExampleClasses(){
createExampleClass();
createExampleClass();
}