日期:2014-05-16  浏览次数:20321 次

eval生成函数问题
<script   language= "javascript ">
var   js= "function   aaa(){alert( 'aaa ');} ";

function   bbb(){
eval(js);
aaa();
}

function   ccc(){
bbb();
aaa();
}

</script>
<input   type= "button "   value= "测试1 "   onclick= "bbb() ">
<input   type= "button "   value= "测试2 "   onclick= "ccc() ">

为什么eval生成的函数在ccc()里不能调用。要想通过触发按钮生成全局函数怎么做?


------解决方案--------------------
var js= "function aaa(){alert( 'aaa ');} ";
改成
var js= "window.aaa = function(){alert( 'aaa ');} ";
------解决方案--------------------
window.eval里面的scope不是global scope
所以function要这样定义:
var xxx = function (...)
------解决方案--------------------
去掉aaa
------解决方案--------------------
不是说了么,var aaa = function (...) ...
------解决方案--------------------
作个记号

------解决方案--------------------
var aaa = function (){

...
}