Почему этот объект не передается по ссылке, когда ему присваивается что-то еще?
Я знаю, что в JS объекты передаются по ссылке, например:
function test(obj) {
obj.name = 'new name';
}
var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // new name
Но почему не работает следующее:
function test(obj) {
obj = {};
}
var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // foo
Я установил объект{}
(пусто), но это все еще говоритfoo
.
Кто-нибудь может объяснить логику этого?