想象一下,我有: <div id names>142,140,150</names>
我可以(在Javascript中)编写一个声明变量名称的forloop,并附加这些值
var list = document.getElementById('names').innerHTML.Split(',');
for(i=0; i<list.Length; i++){
var 'beginning' + list[i];
}
Run Code Online (Sandbox Code Playgroud)
所以我基本上想要创建:
var beginning142 var beginning140 var beginning150
你确实可以:
window['beginning' + list[i]] = 'value';
Run Code Online (Sandbox Code Playgroud)
有趣的巧合,我在这之前10秒回答了一个非常密切相关的问题,然后我用这个作为例子.因此,可以在此处获得有关其工作原理的更详细说明.
你可以这样做:
for(var i = 0; i<100; i++)
{
eval("var beginning"+i);
}
Run Code Online (Sandbox Code Playgroud)
对于害怕来自eval的开发人员这是一篇关于eval以及它如何不是邪恶的好文章:http://www.nczonline.net/blog/2013/06/25/eval-isnt-evil-just-misunderstood/
我不是说你应该跑出去并开始在各地使用eval().事实上,运行eval()的好用例很少.代码清晰度,可调试性以及当然不应忽视的性能肯定存在问题.但是当你遇到eval()有意义的情况时,你不应该害怕使用它.尽量不要先使用它,但是当适当使用eval()时,不要让任何人吓唬你认为你的代码更脆弱或更不安全.
| 归档时间: |
|
| 查看次数: |
8213 次 |
| 最近记录: |