function fSub(obj){
 alert(obj.innerText);
}方法1:
function f1(){
var obj = document.getElementById('div01');
 var method = eval("fSub");
 method(obj); 
}方法2:
function f2(){
 var obj = document.getElementById('div01');
 var strMethod = "fSub(\""+obj+"\")";
 eval(strMethod );
}
方法1,和方法2的区别?
现在如果传入参数为对象时候,方法2不能正确运行。这两种操作的却别是什么呢?

解决方案 »

  1.   

    eval的用法是将eval的内容当做表达式执行
    第一种:相当于method = fSub;
    method(obj) 相当于 fSub(obj)
    第二种:"fSub(\""+obj+"\")";这么写是错的 
    var strMethod = "fSub(obj)";
      

  2.   


    我也不想这么写,"fSub(\""+obj+"\")";
    该死的客户提供的一个API,函数里是这样的,我不能改动。
    只能设想更改fSub函数了,有没有别的办法能够转过来呢。
      

  3.   

    人家不是已经告诉你了么 
    eval("fSub(obj)");
      

  4.   


    》人家不是已经告诉你了么 
    》eval("fSub(obj)");
    我知道这么写可以,但是fSub(\""+obj+"\")是必须这么写的,客户给的API,不能修改。
    所以我想能在fSub函数,转过来吗?