在坛子里看见有人这样写过东西
var a = function(valid){
    if(valid){
               a = "Yse";
             }
     else{
              a = "No";
         }
    }
很不明白这中机制是怎么传参的,能否解释下~

解决方案 »

  1.   

    写这js的人,思路有问题吧。。怎么可能这样修改a的值,应该改成var a = function(valid){
      return valid ? "yes" : "no";
    }
      

  2.   

    传参不是很简单么alert(a("test"));
      

  3.   

    这样写相当于先定义一个方法a, a是全局的。
    如果执行这个方法:
        a(true);
    这时候a就由一个方法变成一个字符串。如果你再执行:alert(a);
    会弹出 “Yes”
      

  4.   

    不知我这样写的对不对。---楼主的写法,我看不明白!
    function fa(valid){
      if(valid){
     return "Yse";
      }
      else{
     return  a = "No";
      }
      }
    //使用如下
    var =fa(true);
    // 可是我想不明白,为什么要像楼主那样写