<script>
var iNum=10;
function callAnotherFunc(fnFunction,vArgument) {
fnFunction(vArgument);
}
var doAdd = new Function("iNum" , "alert(iNum + 12)");
callAnotherFunc(doAdd, 20);
</script>
就是里面的iNum我上面赋值10
下面函数执行还是32  而不是42
谁给我解释下,刚开始学啊

解决方案 »

  1.   

    <script>
    var iNum=10;function callAnotherFunc(fnFunction,vArgument) {
        fnFunction(vArgument);
    }var doAdd = new Function("iNum" , "alert(iNum + 12)");callAnotherFunc(doAdd, 20);
    </script><script >
    以上代码在IE中测试没有问题,alter 32
      

  2.   


    <script>
    var iNum=10;
    function callAnotherFunc(fnFunction,vArgument) {
        fnFunction(vArgument);//这里调用doAdd(20);  ,iNum是个参数同名而已
    }
    //var doAdd = new Function("iNum" , "alert(iNum + 12)");//这个函数转化为
    var doAdd=function(iNum) {
        alert(iNum+12);
    }
    callAnotherFunc(doAdd, 20);
    </script>