JS变量复制和参数传递

5种基本数据类型,按值访问
引用类型:object、Array、function、date

一、变量复制:
1.复制基本类型值时,会创建新值并复制到新变量分配的位置。

var num1=5;
var num2=num1;
num2=4;
alert(num1);// 输出5

两个变量相互操作没有任何影响。
2.复制引用类型时,复制的值是一个指针,指向同一个对象。

var obj1=new Object();
var obj2=obj1;
obj1.name="Jack";
alert(obj2.name);//输出"jack"

二、传递参数: 传递的都是值
1.传递基本类型:被传递的值会复制给一个局部变量

obj.name="Jack";
}
var person=new Object();
setName(person);
alert(person.name);//"Jack"

2.传递引用类型:会把这个值在内存中的地址复制给一个局部变量

function setName(obj){
    obj.name="Jack";
    obj=new Object();//相当于引用了一个新的局部变量
    obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name);//依旧是"Jack"

这里如果person是按引用传递的话,那么最后应该输出”Greg”;说明虽然函数内部修改了参数的值,但原始引用依旧未变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值