Для чего нужна функция 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

Какова цель этой функции?


person Pavlo    schedule 15.09.2013    source источник
comment
developer.mozilla.org/en-US/docs/ Мозилла/   -  person rink.attendant.6    schedule 15.09.2013
comment
Документация (как указано выше) не перечисляет конструктор или не дает других указаний о том, как использовать такой тип.. учитывая приведенные выше ошибки, это, вероятно, должно быть включено/устранено в ответах.   -  person user2246674    schedule 15.09.2013
comment
@rink.attendant.6 предоставленная вами ссылка описывает глубокую особенность Gecko, не связанную с вопросом.   -  person Pavlo    schedule 15.09.2013


Ответы (2)


Rect — это интерфейс, определенный в объектной модели документа ( DOM) Спецификация стиля уровня 2 для использования при работе с CSS rect() в привязках DOM (например, привязках Javascript DOM в браузере).

Как вы заметили, вы не можете сами вызывать его как конструктор, но объекты, реализующие этот интерфейс, возвращаются различными функциями например. .getRectValue():

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

В наши дни вы можете создать DOMRect:

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

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

person beorn    schedule 19.01.2021