关于eval()为什么会跳出循环,求解释?

陈汉丰 2015-07-24 02:13:12

init : function () {
var node = document.getElementsByTagName("div"),
len = node.length;
for(var i = 0;i<len;i++){
if(node[i].attributes['chart']){
obj = node[i];
var c = obj.attributes['chart'].value;
eval("chart."+c+"(obj,barOpt,barPara)");
}
}
},


<div class="a" chart="barComparison">
</div>
<div class="b" chart="lineChart">
</div>

遍历执行完 eval-》barcomparison 就跳出循环了 linechart就没有执行到?
为什么 有什么解决办法吗
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2015-07-24
  • 打赏
  • 举报
回复
你这个不需要用eval() 这样就可以 chart[c](obj,barOpt,barPara);
xuzuning 2015-07-24
  • 打赏
  • 举报
回复
那就要看 barComparison 方法的定义了
陈汉丰 2015-07-24
  • 打赏
  • 举报
回复
引用 5 楼 rui888 的回复:
debug调试第二个看看。
单独都没问题 而且console.log 放eval后面不执行 前面会执行 说明到这里就跳出了
tony4geek 2015-07-24
  • 打赏
  • 举报
回复
debug调试第二个看看。
陈汉丰 2015-07-24
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
请确认 chart 变量存在,且具有 barComparison 方法 请确认 barOpt、barPara 变量存在
都存在 删了第一个DIV后 第二个就能执行到了
陈汉丰 2015-07-24
  • 打赏
  • 举报
回复
引用 1 楼 rui888 的回复:
eval执行完时是什么
eval 执行 chart.barComparison(); 然后遍历到 chart=“lineChart” 再用eval执行chart.barComparison() 本意是这样 但第二个没有执行 log出来只做了第一个
xuzuning 2015-07-24
  • 打赏
  • 举报
回复
请确认 chart 变量存在,且具有 barComparison 方法 请确认 barOpt、barPara 变量存在
tony4geek 2015-07-24
  • 打赏
  • 举报
回复
eval执行完时是什么

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧