JS объект всегда имеет уникальное имя?
js на уровне движка создаёт невидимые классы.
Если написано:(function () { console.log(1) })()
(function () { console.log(2) })()
То в движке это будет выглядеть так:class C1
class C2
Анонимная функция не имеет имени. 
Да, только не объектом, а экземпляром объекта.