什么是Chrome / Firefox中的Rect功能?

时间:2013-09-15 16:25:53

标签: javascript function

我偶然发现了Rect()功能,它存在于Firefox和Chrome中(但不是IE 10):

typeof Rect; // "function"
Rect;        // function Rect() { [native code] }

但是这个函数既不能直接访问,也不能作为构造函数访问:

Rect();     // TypeError: Illegal constructor
new Rect(); // TypeError: Illegal constructor

这个功能的目的是什么?

2 个答案:

答案 0 :(得分:10)

Rect是在Document Object Model (DOM) Level 2 Style Specification中定义的接口,用于在DOM绑定中处理CSS rect()时(例如浏览器中的Javascript DOM绑定)。

正如您所注意到的那样,您自己无法将其称为构造函数,但实现此接口的对象由各种函数e.g. .getRectValue()返回:

function doSomething(v) {
  if (v instanceof Rect) {
    ...
  }
  else {
    ...
  }
}
doSomething(window.getComputedStyle(elem, null).
  getPropertyCSSValue(styleProp).getRectValue());

答案 1 :(得分:0)

现在你可以创建一个 DOMRect:

var myDOMRect = new DOMRect(x, y, width, height);

https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/DOMRect