今天在做单点登录系统 被一个问题给卡住了 大家看下面的代码 this.login = function(UserName, Pwd, SuccessFun, FailFun) login是个方法 他的参数SuccessFun,FailFun也是方法 怎么让SuccessFun,FailFun满足条件时候执行 
用eval好像不行 有人说用call可以 但是不知道怎么写 请大家帮帮小弟忙this.login = function(UserName, Pwd, SuccessFun, FailFun) {
        this.com.WebSvcUserName = UserName;
        this.com.WebSvcUserPassWord = Pwd;
        var c = this.com.UserLogin();
        if (c) {
            this.Guid = this.com.UserGetGUID();            if (SuccessFun != null) {                eval(SuccessFun);            }
        }
        else {
            alert("密码不正确");            if (FailFun != null)                eval(FailFun);
        }    }

解决方案 »

  1.   

    this.login(UserName, Pwd, SuccessFun(), FailFun());
      

  2.   

    if (SuccessFun != null) {
           eval(SuccessFun);

    --------> //函数名,用字符串传进来
     if(Object.prototype.toString.call(SuccessFun)==="[object String]"){
        eval(SuccessFun).call();
     }
     if(Object.prototype.toString.call(SuccessFun)==="[object Function]"){
       SuccessFun.call(); 
     }
      

  3.   

    不需要其他手法,直接使用SuccessFun(), FailFun()函数就可以了,他们只是一个对象指针罢了,你在使用的时候只要将函数名作为参数即可