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