Цитата:
|
Object -- это функция, возвращающая пустой объект
|
Любая функция в JS может создавать пустой объект при вызове через new и ставить ему прототип, который указан в свойстве prototype функции, т.е. когда мы пишем
{} // это тоже самое, что и
new Object // и этому новому объекту будет установлен Object.prototype
Если вызывать функцию без new, то её поведение отлично, но если брать в расчёт именно Object, то тогда он будет выступать в роли фабрики объектов, т.е.
Object(1) // -> new Number(1)
Object('foo') // -> new String('foo')
Цитата:
|
Когда мы пишем литеральную форму, это сахар для вызова Object так получается?
|
Да, только важно, что для new Object.
Все встроенные конструкторы, такие как Function, String, Array, Object и т.д. являются встроенными объектами и реализуются самой VM JavaScript и по умолчанию функция Object и его прототип (нативный объект Object.prototype) являются самыми корневыми элементами языка, т.е.
new Date().__proto.__ == Date.prototype;
Date.prototype.__proto__ == Object.prototype;
Date.prototype.__proto__.constructor == Object;