Мне кажется, для JS само понятие "ссылка" не очень нужно. Оно актуально для низкоуровневых языков, где нет объектов, а есть области в памяти. А в JS настоящие объекты, для которых осмысленно утверждение "тот же самый". И слово "ссылка" относится к тому обстоятельству, что переменная - это имя, каким-то образом связанное с объектом. Две переменные могут быть связаны с одним ("тем же самым") объектом. Например,
>> o1 = { foo: 1, bar: 2 }
Object { foo: 1, bar: 2 }
>> o2 = o1
Object { foo: 1, bar: 2 }
>> o1.foo = 33
33
>> o2
Object { foo: 33, bar: 2 }
Имя o1 связано с объектом. И имя o2 связано с тем же самым объектом. Поэтому когда я изменяю этот объект через переменную o1, я вижу результат и через переменную o2.
Отсюда, кстати говоря, практическое следствие, что нужно быть аккуратным с изменением объекта, если это может неприятно удивить других пользователей этого объекта.