在Javascript中创建预定义对象的实例

在Javascript中创建预定义对象的实例,javascript,object,window,document,Javascript,Object,Window,Document,我知道在Javascript中我们可以创建像 var ins = new myObject(); 我知道,窗口、文档等都是javascript中预定义的对象。我们可以创建这些对象的新实例吗。? 例如: 是 可能吗?是和否,大部分是否 您可以使用窗口创建新的窗口对象。打开。它还将有一个新的文档对象 您可以通过创建一个新的DOM文档,尽管它不一定具有预先制作的文档的所有特殊功能。您还可以通过创建新的文档片段,这非常方便。不要将对象与构造函数(或大多数OOP语言中的类)混淆。在JavaScript中

我知道在Javascript中我们可以创建像

var ins = new myObject();
我知道,窗口、文档等都是javascript中预定义的对象。我们可以创建这些对象的新实例吗。? 例如:

可能吗?

是和否,大部分是否

您可以使用
窗口创建新的
窗口
对象。打开
。它还将有一个新的
文档
对象

您可以通过创建一个新的DOM
文档
,尽管它不一定具有预先制作的文档的所有特殊功能。您还可以通过创建新的文档片段,这非常方便。

不要将对象与构造函数(或大多数OOP语言中的类)混淆。在JavaScript中,通过使用
new
操作符调用构造函数来创建对象:

function MyObject()
{
}

var obj = new MyObject();
之后,您可以使用
构造函数
属性访问给定对象的构造函数:

var ctor = obj.constructor;  // (ctor === MyObject) will be true
理论上,可以创建与给定对象相同类型的新对象:

var obj1 = new MyObject();
var obj2 = new obj1.constructor();

在您的情况下,您可以对“内置”对象进行相同的尝试,但它可能无法工作,因为脚本引擎可能会禁止它。例如,当试图使用
newdocument.constructor()
创建新文档时,Chrome将抛出
TypeError:unligal constructor
。这是因为
document
的构造函数
HTMLDocument
,并不打算直接使用。

文档和窗口没有构造函数。

文档
不是构造函数,它是构造的对象。您试图做的是说
new-new-Object()
new{}


document
的构造函数是
HTMLDocument
,但您不能这样构造它,必须使用
document.implementation.createDocument()
不,您不能。尽管大多数这些宿主对象都有构造函数(例如
文档的
HTMLDocument
),但它们仅用于继承操作(例如
instanceof
操作符),但无法调用

> document.constructor
HTMLDocument
> new HTMLDocument
Unhandled DOMException: NOT_SUPPORTED_ERR
您也不能创建,例如,这些“构造函数”只是接口


但是,您可以使用该方法创建一个新的DOM,该方法在对象上可用。

您可以为DOM元素模拟自己的构造函数。举个例子,我不这么认为。尝试此var inss=new document();在控制台上给出错误“TypeError:对象不是函数”文档有构造函数,请参阅我的答案。
> document.constructor
HTMLDocument
> new HTMLDocument
Unhandled DOMException: NOT_SUPPORTED_ERR