JS: Разница между Object и Object.constructor

Я не понимаю разницу между Object и Object.constructor.

Давайте возьмем пример:

function Person() {}
var p = new Person();

Человек - это функция для создания объектов. Так:

p instanceof Person //true
p.constructor // Person

Person - это конструктор, и я могу создавать людей с новым Person()

Но Object также является конструктором (я могу создать объект с новым Object()). Итак, почему у Object есть свойство конструктора, поскольку он уже сам конструктор?

Спасибо

2 ответа

Так почему же у него есть свойство конструктора, поскольку он уже сам конструктор?

Потому что каждый конструктор является функцией, а те наследуют свои свойства (например, call, apply а также bind методы) из Function.prototype, В том числе Function.prototype.constructor свойство, которое указывает на Function,

constructor это указатель на constructor function используется для создания заданного значения, все объекты имеют его. Для примитивов это указывает на примитивный конструктор: Object, Number, Function и так далее.

Документ: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor

Другие вопросы по тегам