Я знаю, что в 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
.
Кто-нибудь может объяснить логику этого?