Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Для чего нужна функция Rect в Chrome/Firefox?

Автор вопроса: PavloОтветов: 2

Я наткнулся на функцию Rect(), которая присутствует как в Firefox, так и в Chrome (но не в IE 10):

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

Но эта функция недоступна ни напрямую, ни как конструктор:

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

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

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

javascriptfunction

Ответы

Ответ 1 · рейтинг 11 · nmaier

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());

Ответ 2 · beorn

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы