указано здесь https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function свойство конструктора экземпляра объекта функции "определяет функцию, которая создает прототип объекта".Это сбивает с толку, так что Object.constructor это "функция, которая создает прототип объекта"?Какой именно объект является «объектом»?
Я пытаюсь понять, почему само свойство конструктора Object.constructor само по себе?
как таковое: Object.constructor === Object.constructor.constructor// почему?
Редактировать: я нахожу ответ Ти Джей Краудера хорошим, но формулировка его слов довольно расплывчата (что затрудняет понимание при первом прочтении, по крайней мере, для меня).Вот перефразированный ответ:
1) Объект является экземпляром Функция
2) Объект не имеетсвойство с именем constructor , поэтому когда мы вызываем Object.constructor , оно фактически дает нам Object. [[prototype]]. constructor (он же Object .__) proto __. Constructor ).
3) Object.constructor (он же Object .__ proto __. Constructor) является экземпляром Function .
4) Поскольку оба Object и Object.constructor (он же Object).__ proto __. Конструктор ) являются экземплярами Function , поэтому они оба имеют свойство __ proto __ , которое ссылается натот же объект.Другими словами Object .__ proto __ === Object.constructor .__ proto __ (он же Object .__ proto __. constructor .__ proto _ )
5) Строка Object.constructor === Object.constructor.constructor фактически равнаline Object .__ proto __. constructor === Object.constructor .__ proto __. constructor
6) объединяя шаги 4 и5 дайте нам Object.constructor === Object.constructor.constructor
7) перейти к шагу 4)