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