我知道在JS中,对象是通过引用传递的,例如:
function test(obj) {
obj.name = 'new name';
}
var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // new name
Run Code Online (Sandbox Code Playgroud)
但为什么下面没有工作:
function test(obj) {
obj = {};
}
var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // foo
Run Code Online (Sandbox Code Playgroud)
我已经将对象设置为{}(空)但它仍然说foo.
任何人都可以解释这背后的逻辑吗?