Свойство constructor - содержит ссылку на конструктор, которым объект был создан.

Перед прочтенем статьи рекомендуется ознакомиться с new, __proto__, prototype.

См. также hasOwnProperty, Object.create.

Синтаксис

объект.constructor

Примеры

Пример

Посмотрим несколько примеров:

[].constructor; //Array;
({}).constructor; //Object;

function User() {};
new User().constructor; //User

Таким образом видно, что constructor указывает на конструктор которым был создан объект. Использовать его стоит тогда, когда неизвестно каким конструктором был создан объект, но нужно сделать еще один.

Пример

Но со свойство constructor нужно обращаться осторожно. Так как его можно потерять, например так:

function User() {};

alert(User.prototype.constructor); //User

User.prototype = {
	sayHi: function(){}
};

alert(User.prototype.constructor); //Object

В данном примере constructor был потерян, так как свойство prototype перезаписали. Поэтому стоит писать так:

function User() {};

alert(User.prototype.constructor); //User

User.prototype.sayHi: function(){}

alert(User.prototype.constructor); //User