Операция присваивания Javascript заключается в копировании ссылок?

Базовый пример:

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 , не так ли? ?

6
задан Tiago 10 June 2017 в 10:10
поделиться