function myFunc(theObject) {
theObject = {make: "Ford", model: "Focus", year: 2006};
}
var mycar = {make: "Honda", model: "Accord", year: 1998};
var x = mycar.make; // returns Honda
myFunc(mycar);
var y = mycar.make; // still returns Honda
Run Code Online (Sandbox Code Playgroud)
为什么myFunc不改变mycar对象?
在theObject = { ... }内部执行时myFunc,您将创建一个新对象并将其引用分配给局部变量theObject.这不会更改原始对象.
要修改原始对象的内容,需要直接修改其属性,如下所示:
theObject.make = 'Ford';
theObject.model = 'Focus';
theObject.year = 2006;
Run Code Online (Sandbox Code Playgroud)