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

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也跟着发生变化?


萧十郎
浏览 1682回答 1
1回答

繁星淼淼

对于数组这种非普通类型(字符串,整型,布尔),你的赋值相当于地址拷贝,就是a、b占用了同一段地址。所以改了b,a也会变,本质上a、b就是一个东西。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript