Не путайте объектам с конструкторами (или классов в большинстве языков объектно-ориентированного программирования). В JavaScript можно создать объекты с помощью вызова функции конструкторы с помощью new
оператора:
function MyObject()
{
}
var obj = new MyObject();
После этого вы можете получить доступ к конструктору данного объекта с помощью constructor
свойства:
var ctor = obj.constructor; // (ctor === MyObject) will be true
Теоретически, вы можете создавать новые объекты одного и того же типа, что и данный объект:
var obj1 = new MyObject();
var obj2 = new obj1.constructor();
в вашем случае, вы можете попробовать то же самое с «встроенной» объекта, но он, вероятно, не будет работать, так как механизм сценария может его запретить. Например, Chrome будет бросать TypeError: Illegal constructor
при попытке создать новый документ с использованием new document.constructor()
. Это связано с тем, что конструктор document
, HTMLDocument
, не предназначен для непосредственного использования.
Вы можете имитировать собственные функции-конструкторы для элементов DOM. Возьмите [jsdom] (https://github.com/tmpvar/jsdom "jsdom"), например. –
thansk по ссылке –
Я так не думаю. Попытка этого var inss = new document(); на консоли дать ошибку «TypeError: объект не является функцией» – Adil