1. 程式人生 > >JavaScript函式傳參是按指傳遞還是按引用傳遞

JavaScript函式傳參是按指傳遞還是按引用傳遞

<html>
<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);

        console.log(person.name);
    </script>
</head>
<body>
</body>

</html>

假如按引用傳參:那麼在函式test內部reference修改了指向,因此最終輸出結果因該是change

但是實際上結果輸出的卻是logic。那說明什麼呢?說明person沒有改變指向。但是如果沒有指向,那為什麼

name屬性的值發生改變呢。因為引數是按值傳遞的。也就是說,有兩個引用指向了同一個物件。