function confirm_to_func(func, txt,func_parm1,func_parm2) {art.dialog({title:"确认执行该操作",content : txt,icon : "question",lock : "true",window : "top",ok : function() { eval(func+'(func_parm1,func_parm2)'); eval(func+'('+func_parm1+','+func_parm2+')');
}, cancel : function() {
}
});}如上代码所示我觉得 eval(func+'('+func_parm1+','+func_parm2+')');这种写法应该给是对的。也就是拼起来。结果这种运行不了。而eval(func+'(func_parm1,func_parm2)'); 这个却运行起来了。为什么?其中的func_parm1,func_parm2是作为变量传进来的。在逗号作用下不就变成了一个string类型值为‘func_parm1’的字符串了吗?为 了更好看清我的问题附个图
1 回答
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
繁星淼淼
TA贡献1775条经验 获得超11个赞
假如
func=“change”;func_parm1=class_enable;func_parm2="5gfgdfg5";
第2种写法会让eval执行"
change(class_enable,5gfgdfg5)
"。而eval会把class_enable和5gfgdfg5当成变量(因为没加引号)。
而第二种如果改成
eval(func+'("'+func_parm1+'","'+func_parm2+'")');
即参数加上引号,
eval最后接收到的参数是。
change(“class_enable“,“5gfgdfg5“)
能够正常运行。即change参数加上引号就不会在把class_enable和5gfgdfg5当做变量
添加回答
举报
0/150
提交
取消