Свойство 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