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