Показать сообщение отдельно
  #7 (permalink)  
Старый 30.06.2014, 23:11
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
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;
__________________
kobezzza
code monkey
Ответить с цитированием