ссылка на объект через агрумент
Всем привет.
Что здесь происходит? Почему изменить свойство по ссылке можно, а весь объект нельзя? Если знаете где об этом прочитать, скиньте ссылку плиз. var obj = {a:1}; function fun (obj) { console.log(obj); // {a:1} obj.a = 4; obj = {a:3}; // что происходит здесь? Это новая переменная? Это аргумент? если переменная то почему она не меняет глобальную, онаже без var? console.log(obj); // {a:3} } fun(obj); console.log(obj.a); // 4 |
obj.a = 4; // Здесь записывается свойство в объект obj , тот что вне функции , так как новый(тот что ниже ) еще не создан obj = {a:3}; // Здесь Вы в лексическом окружении функции создали новый объект obj. |
Цитата:
Именно аргумент? Или на данном этапе это уже отдельный экземпляр? |
kuzroman,
измените название аргумента Цитата:
var obj = {a:1}; function fun (a) { a.a = 4;//изменяем свойство obj alert(obj.a); obj = {a:3};//изменяем само obj } fun(obj); alert(obj.a); |
рони,
Это понятно) Но вопрос был не в этом. |
Часовой пояс GMT +3, время: 23:00. |