Don't confuse objects with constructors (or classes in most OOP languages). In JavaScript, you create objects by calling constructor functions using the new
operator:
function MyObject()
{
}
var obj = new MyObject();
Afterwards you can access the constructor given the object using the constructor
property:
var ctor = obj.constructor; // (ctor === MyObject) will be true
Theoretically, you can create new objects of the same type as a given object:
var obj1 = new MyObject();
var obj2 = new obj1.constructor();
In your case, you might try the same with "built-in" object, but it will probably not work since the script engine might forbid it. For example, Chrome will throw TypeError: Illegal constructor
when trying to create a new document using new document.constructor()
. This is because document
's constructor, HTMLDocument
, is not meant to be used directly.