js函数传参

题目

function use(obj) {
    obj.name = '陈架构';
    obj = new Object();
    obj.name = '任架构';
}
let person = new Object();
use(person);
console.log(person.name);

答案

陈架构

解析

js函数传参是引用传递,不允许值传递,当函数内部想要修改传入的参数时,都会自动在函数内部先构造一个新变量,然后给它赋值。

题目中的代码含义和以下代码是一样的:

function use(obj) {
    obj.name = '陈架构';
    newObj = new Object();
    newObj.name = '任架构';
}
let person = new Object();
use(person);
console.log(person.name);