JavaScript函式傳參是按指傳遞還是按引用傳遞
阿新 • • 發佈:2019-01-07
<html>
<head>
<script type="text/javascript">
function test(reference) {
reference.name = 'logic';
reference = new Object();
reference.name = 'change';
}
var person = new Object();
</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屬性的值發生改變呢。因為引數是按值傳遞的。也就是說,有兩個引用指向了同一個物件。