var x; 
var y; 
function A(x,y) 

    this.x = 1; 
    this.y = 2; 

function Main() 

  x = 100; 
  y = 200; 
  A(x,y); 
}
 或者
var x; 
var y; 
function A() 

    x = 1; 
    y = 2; 

function Main() 

  x = 100; 
  y = 200; 
  A(); 
}
 变量的作用范围
A(x,y),重复声明定义了arguments,此时在A里面的x,y是argument声明的
里面设值的话,设的是arguments的,除非this.x和this.y

解决方案 »

  1.   

    其实我的意思是
    function A(x, y) 

        x = 1; 
        y = 2; 

    function Main() 

      a = 100; 
      b = 200; 
      A(a, b); 
      我想现在得到a为1,b为2的结果 

    谢谢
    刚才让大家看不明白真是小弟的疏忽,对不起.
      

  2.   

    你是指传引用类型而不是传值类型?如果传递的是非Object,
    如number,string,char之类的参数,
    在JS里是作为值类型传递的如果传递的是Object,
    如:JSON,XML,Element,Function,Data等等等的时候是作为引用地址传递的
    比如:function A(d) 

        d.a = 1; 
        d.b = 2; 

    function Main() 

      var c = {a: 100, b: 200}; 
      A(c); 
      //这个时候结果就是c.a为1,c.b为2,因为它是JSON是作为引用地址传递