有一个小测试。我希望这两个obj\d
对象a
最终都改变了他们的成员。但是这种change1
风格不起作用,我想知道为什么,或者为什么不应该这样表现?
<button id="btn1" onclick="test()">Change</button>
<script>
var obj1 = { a : {strblahblah: "blah"} };
var obj2 = { a : {strblahblah: "blah"} };
function test(){
change1(obj1.a);
change2(obj2);
alert("obj1: " + obj1.toSource() + "\r\nobj2: " + obj2.toSource());
}
function change1(obj){
obj = {str: "change1"};
}
function change2(obj){
obj.a = {str: "change2"};
}
</script>
结果(点击按钮后):
obj1: ({a:{strblahblah:"blah"}})
obj2: ({a:{str:"change2"}})