我是一个javascript noob,但我有一个一直困扰我的一般性问题.让我们举一个例子:
如果我在Chrome上跳进JS控制台,我可以轻松浏览该window对象.window似乎列出了很多"类型",可以这么说.例如,window.CSSPrimitiveValue是一个这样的财产.当我window.CSSPrimitiveValue在控制台中进行评估时,我会回到看起来像构造函数的东西(可能):
function CSSPrimitiveValue() { [native code] }
Run Code Online (Sandbox Code Playgroud)
所以看起来这个函数是用某种母语实现的.不管.当然,我想构建其中一个,如下所示:
var test = new CSSPrimitiveValue();
Run Code Online (Sandbox Code Playgroud)
但后来我收到一个错误:
TypeError: Illegal constructor
Run Code Online (Sandbox Code Playgroud)
我怀疑我要么错误地调用构造函数,要么根本不是构造函数.我是一个相当大的JS noob关于这个,但有没有办法让我手动构建这些对象之一?怎么办呢?
我偶然发现Rect()了Firefox和Chrome(但不是IE 10)中的功能:
typeof Rect; // "function"
Rect; // function Rect() { [native code] }
Run Code Online (Sandbox Code Playgroud)
但是这个函数既不能直接访问,也不能作为构造函数访问:
Rect(); // TypeError: Illegal constructor
new Rect(); // TypeError: Illegal constructor
Run Code Online (Sandbox Code Playgroud)
这个功能的目的是什么?