不知道该怎么概括这个问题
我准备写一个小的ajax框架,封装所有ajax行为,可问题来了
       ajax.onreadystatechange = callback;  //  var callback = "JsonParse();" 
这个 callback 实际上是一个字符串类型的变量(传入的参数), 实际并没有callback这个函数
大虾们该怎么解决这个问题呢?

解决方案 »

  1.   

    既然要封装 你的callback不应该是参数传进去的吗?
      

  2.   

    ajax.onreadystatechange = function(callback){
        alert(callback);
    };  
      

  3.   

    那还有没有其它方法可以不用eval()不?  一直感觉这个函数怪怪的,不正规
      

  4.   

    if(typeof callback == "function"){
       ajax.onreadystatechange = callback;
    }
    else if(typeof callback == "string"){
      ajax.onreadystatechange = function(){
        try{
           eval(callback);
        }
        catch(e){;}
      }
    }
      

  5.   

    你要是字符串 那只能用eval执行,
    一般都是回调function作为参数传进来 然后直接.onreadystatechange = callback;