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
function A(x, y)
{
x = 1;
y = 2;
}
function Main()
{
a = 100;
b = 200;
A(a, b);
我想现在得到a为1,b为2的结果
}
谢谢
刚才让大家看不明白真是小弟的疏忽,对不起.
如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是作为引用地址传递
}