Obtenga una variable global dinámicamente por cadena de nombre en JavaScript
<script>
//in one script
var someVarName_10 = 20;
</script>
Quiero obtener acceso a esta variable desde otro script por nombre de variable. Con el objeto de ventana es simple, ¿es posible con la variable local?
Me refiero a acceder a esta var mediante un código como este:
<script>
const num = 10;
alert(all_vars['someVar' + 'Name_' + num]);
</script>
Aceptado
¿Quieres hacer algo como esto?
<script>
//in one script
var someVarName_10 = 20;
alert(window["someVarName_10"]); //alert 20
</script>
Actualización : porque OP editó la pregunta.
<script>
num=10;
alert(window['someVar' + 'Name_' + num]); //alert 20
</script>
Me he dado cuenta de que todo el mundo recomienda la creación de var global, lo que provocará que las variables se filtren al espacio de nombres global. Cuando crea dinámicamente nombres de clases o simplemente variables, es fácil mantenerlos locales:
this['className'] = 123;
o
this['varName'] = 123;
El espacio entre nombres se vería así:
vars = {};
vars['varName'] = 123;
vars.varName // 123
<script>
var someVarName_10 = 20;
var num = 10;
alert(eval('someVar' + 'Name_' + num)); //alert 20
</script>