为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript中把一个关联数组a赋值给b,然后改变a的内容,为什么b也跟着发生变化?

JavaScript中把一个关联数组a赋值给b,然后改变a的内容,为什么b也跟着发生变化?

萧十郎 2018-09-03 17:20:10
JS: var a = {"Client":"jQuery","Server":"PHP"}; var b = a; a["New"] = "Element"; console.log(b); // 输出 Object { Client="jQuery",  Server="PHP",  New="Element"} PHP例程1: $a = array('Client'=>'jQuery','Server'=>'PHP'); $b = $a; $a['New'] = 'Element'; var_export($b); //输出 array('Client'=>'jQuery','Server'=>'PHP') PHP例程2: $a = array('Client'=>'jQuery','Server'=>'PHP'); $b = &$a; //引用赋值 $a['New'] = 'Element'; var_export($b); //输出 array('Client'=>'jQuery','Server'=>'PHP','New'=>'Element')JavaScript中把一个关联数组a赋值给b,然后改变a的内容,为什么b也跟着发生变化?
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

对于数组这种非普通类型(字符串,整型,布尔),你的赋值相当于地址拷贝,就是a、b占用了同一段地址。所以改了b,a也会变,本质上a、b就是一个东西。


查看完整回答
1 反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 1681 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信