Для чего нужна функция Rect в Chrome/Firefox?
Я наткнулся на Rect()
функция, которая присутствует как в Firefox, так и в Chrome (но не в IE 10):
typeof Rect; // "function"
Rect; // function Rect() { [native code] }
Но эта функция недоступна ни напрямую, ни как конструктор:
Rect(); // TypeError: Illegal constructor
new Rect(); // TypeError: Illegal constructor
Какова цель этой функции?
2 ответа
Решение
Rect
интерфейс, определенный в спецификации стиля уровня 2 Document Object Model (DOM) для использования при работе с CSS rect()
в привязках DOM (например, привязки Javascript DOM в браузере).
Как вы заметили, вы не можете вызывать его как конструктор самостоятельно, но объекты, реализующие этот интерфейс, возвращаются различными функциями, например.getRectValue()
:
function doSomething(v) {
if (v instanceof Rect) {
...
}
else {
...
}
}
doSomething(window.getComputedStyle(elem, null).
getPropertyCSSValue(styleProp).getRectValue());
В наши дни вы можете создать DOMRect:
var myDOMRect = new DOMRect(x, y, width, height);
См. https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/DOMRect .