<html>
<head>
<script type="text/javascript">
function test(reference) {
reference.name = 'logic';
reference = new Object();
reference.name = 'change';
}
var person = new Object();
console.log(person.name);
</script>
</head>
<body>
</body>
<head>
<script type="text/javascript">
function test(reference) {
reference.name = 'logic';
reference = new Object();
reference.name = 'change';
}
var person = new Object();
person.name = 'luohao';
test(person);
</script>
</head>
<body>
</body>
</html>
假如按引用传参:那么在函数test内部reference修改了指向,因此最终输出结果因该是change
但是实际上结果输出的却是logic。那说明什么呢?说明person没有改变指向。但是如果没有指向,那为什么
name属性的值发生改变呢。因为参数是按值传递的。也就是说,有两个引用指向了同一个对象。