ссылка на объект через агрумент
Всем привет.
Что здесь происходит? Почему изменить свойство по ссылке можно, а весь объект нельзя? Если знаете где об этом прочитать, скиньте ссылку плиз.
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, время: 09:05. |