永发信息网

我想问哈js中的字符串的复制和引用是传值还是传地址??

答案:2  悬赏:30  手机版
解决时间 2021-03-06 20:32
如果是传地址?那么:
var a={name:'yy',age:26};
var b=new Object();
b.name=a.name;
b.age=a.age;
a.name='xx';
console.log(typeof(b.name));//Object { name="yy", age=26}
这个中间的a.name不就是字符串嘛?
最佳答案
这里其实就是深拷贝和浅拷贝的问题,你上边代码只是浅拷贝,当2种情况
1:涉及对象的赋值 obj = obj1
2: 涉及数组赋值 ary = ary1
那么他们是传地址的,如果改动其中一个,如改动obj.name ,那么obj1.name也是会发生变化的,自己验证一下。
你上边的情况不涉及对象的赋值,而仅仅是字符串的简单复制,用浅拷贝就行了,当你上边变动一下,
var a={name:'yy',age:26};
b=a;
var b=new Object();
那么就要考虑深拷贝了 a = b.clone() // Object.prototype.clone()重写
不然改动a.name ,b.name也发生变化
原理我解释一下: 涉及对象和数组, b = a ; 那么b 放弃了new Object的地址,替换成指向a创建的{name:'yy',age:26}存放的地址 ,而 b.name=a.name b和a的地址不一样,所以a.name改变不影响b.name
正确与否,自己写个例子验证
全部回答
b.name 应该是字符串吧, “yy”,你再打印下看看 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在农村买了社保,还可以买单位的保险吗?
物联网加 是什么意思?
【海浪的声音】海浪的声音怎么形容
金牛座女生是不是对异性朋友的占有欲也是很强
太阳红幼儿园地址在哪,我要去那里办事
茶可道,茶亦悠然阅读答案
七彩虹g41d3主板支持多大外频
一个人单身久了,连爱上一个人都很难。
世界上哪8种女人不能娶回家?
dnf90ss手炮配什么装备最好
a^2(x^2-x+1)-a(x^2-1)=(a^2-1)x
孟州市兴燕食品销售有限公司在哪里啊,我有事
补写出下列名篇名句中的空缺部分。(8分)(1
目前最好的理财软件是什么
美金的符号是什么
推荐资讯
黄石市中心医院-2号楼(住院楼)在什么地方啊,
据说目前中国是美国最大的债权国,为什么敢借
男方户口转到深圳了,可以在老家领结婚证吗
哪些银行与p2p平台签订资金存管业务
马云通过免费当导游学习英语有哪些好处?
完美世界游戏里的安全锁怎么取消???
把qq好友屏蔽了,是不是连他的空间动态都看不
一种女士烟叫“茶花”,请问现实中有没有卖的
k7054 10:24从海伦开车几点到哈尔滨
中国联通新时代营业厅在什么地方啊,我要过去
南宁市中学生校服专卖地点在哪
《[猫鼠]吾心无名》有情风月txt全集下载
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?