2

为什么我不能创建一个新的窗口实例。

当我尝试:

var mywin = new window();

它抛出:

TypeError: object is not a function

我猜 window 是一个静态对象,有什么方法可以将静态对象转换为动态对象,以便我可以执行以下操作:

window.prototype.something = 'value'; 

有人可以对此有所了解吗?

4

3 回答 3

4

window是 Javascript 中表示全局上下文的特殊对象。它是Window该类的一个实例,但您不能创建该类的实例,因为它对解释器具有特殊意义。

(如果您只想创建一个窗口,可以使用该window.open()函数来完成。)

于 2013-09-10T15:59:09.413 回答
1

window不是类,它是对当前Window对象的引用。

一个Window对象代表浏览器中的一个窗口,因此您不能只创建它的一个实例。您使用该open方法打开一个新窗口,从而创建一个新Window实例:

var mywin = window.open('http://www.guffa.com', '_blank');

_blank目标使调用open实际上打开一个新窗口,而不是在当前窗口中打开一个页面。

Window不是一个类,它是一个接口,所以它没有原型。您可以使用属性扩展当前窗口,但这只会影响该实例,而不是所有实例:

window.something = 'value';
于 2013-09-10T16:01:21.617 回答
-2

错误消息是不言自明的!window 不是函数,只能在函数前使用new关键字,然后这个函数称为构造函数。关键字的作用是new创建一个新对象并将其设置为构造函数的上下文。

于 2013-09-10T16:01:24.493 回答