JS: Разница между Object и Object.constructor - PullRequest
0 голосов
/ 12 июня 2018

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

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

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

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

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

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

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

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

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

0 голосов
/ 12 июня 2018

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

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

...