@arver

Пояснить почему ссылка на объект не изменилась?

В IIFE передаем ссылку на объект.Почему ссылка не меняется?
var obj = {
a: 1
};
(function(obj){
obj = {
a: 2
}
})(obj)
console.log(obj)
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Если написать вот таким "псевдокодом", станет понятнее?
var obj = {
a: 1
};
(function(var obj){
obj = {
a: 2
}
})(obj)
console.log(obj)

(такой код не выполнится, но он покажет суть, как будет работать ваш код).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
Конструкция obj = { a: 2 }, выполняет re-declare.
Если хотите мутировать объект, тогда пишите Object.assign(obj, { a: 2 }) или obj.a = 2
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы