在JavaScript中通过名称stringdynamic获取全局variables
<script> //in one script var someVarName_10 = 20; </script>
我想通过variables名从另一个脚本访问这个variables。 用窗口对象简单,用局部variables可能吗?
我的意思是通过这样的代码来访问这个var:
<script> alert(all_vars['someVar' + 'Name' + num]); </script>
你想做这样的事吗?
<script> //in one script var someVarName_10 = 20; alert(window["someVarName_10"]); //alert 20 </script>
更新 :因为OP编辑了这个问题。
<script> num=10; alert(window['someVar' + 'Name_' + num]); //alert 20 </script>
我注意到,每个人都build议全局variables创build这将导致variables泄漏到全局名称空间。 当你dynamic地创build类名或variables时,很容易保持本地:
this['className'] = 123;
要么
this['varName'] = 123;
名称间距如下所示:
vars = {}; vars['varName'] = 123; vars.varName // 123
<script> var someVarName_10 = 20; var num = 10; alert(eval('someVar' + 'Name_' + num)); //alert 20 </script>
好吧, 只是为了debugging目的 ,你可以做这样的事情。 我在开发类时使用它,其中一些variables必须保持私有(var)。 这个工作甚至在局部variables(和全局的诅咒)
function MYCLASS(){ var a=1, b=2, c=3; this.public = "variable"; this.debug = function(sVar){ return eval(sVar); } } var myThing = new MYCLASS(); myThing.debug('a') //return 1 myThing.debug('b') //return 2 myThing.debug('c') //return 3
如果这是你所说的话:
<script type="text/javascript"> var hello = 'test'; </script> <script type="text/javascript"> alert (hello); </script>
它的工作原理是脚本最终可用于文档,您可以访问它们的variables。