js中参数的传递

参数的值传递

var person = {
        name: 'zhan',
        age: 20
    }
    function setName(obj) {  // 传入的只是person对象在栈内存中的引用值
        console.log(obj)//person
        obj = {};   // 将传入的引用指向另外的值 //新建一个对象把该新对象在栈内存中的引用值赋给obj,
        // 此时obj的引用指向新对象,并不改变person的引用值
        obj.name = 'hui';  // 这里只是修改新对象的属性值
        console.log(person.name);//zh
    }
    setName(person);
    console.log(person.name);  // zhan未被改变
    function set(obj) {
        console.log(obj)//person
        obj.name='hui'//此处的obj的值是person的引用值,和person指向同一个对象,并修改了该对象的name属性值
    }
    set(person);
    console.log(person.name)//hui

转载于:https://my.oschina.net/u/3407699/blog/1558133

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值