Базовый пример:
var b = 10;
var c = b;
b++;
console.log(b,c);
>> 11 10
c
выглядит как копия b
.
Но в другом случае:
var x = {};
var y = x;
x.abc = 10;
console.log(x.abc, y.abc);
>> 10 10
Почему y
не копия x
, а ссылка, которая указывает на тот же экземпляр x
указывает to?
Кроме того, я предположил, что b ++
создает другой экземпляр, поэтому b
указывает на новый экземпляр, а c
указывает на старый. Однако ...
var u = 10;
setTimeout(function() {
console.log(u);
}, 10000)
u++;
>> 11
Если u ++
создает новый экземпляр, тогда u
внутри анонимной функции должен указывать на старый u
, не так ли? ?