为什么我无法创建窗口的新实例?

时间:2013-09-10 15:53:31

标签: javascript

为什么我无法创建新的窗口实例。

当我尝试:

var mywin = new window();
它扔了:

TypeError: object is not a function

我猜窗口是一个静态对象,有没有办法将静态对象转换为动态,这样我就可以这样做:

window.prototype.something = 'value'; 

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

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

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

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

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

window.something = 'value';

答案 2 :(得分:-2)

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