Историческая функция $.isWindow()

Определение и применение

Функция $.isWindow() определяла, похож ли переданный объект на окно браузера. Она встречается в старом коде, который различает окно, документ и обычный DOM-элемент при вычислении размеров или назначении событий.

Синтаксис

JavaScript
const isBrowserWindow = $.isWindow(value);

Параметры и возвращаемое значение

Аргумент — проверяемое значение. Результат — логическое значение. Для window получается true, для document и обычного элемента — false.

Историческая проверка опирается на ссылку объекта на самого себя через свойство window. Это не проверка происхождения объекта и не разрешение доступа к окну другого домена.

Особенности и совместимость

Добавлена в 1.4.3, устарела в 3.3, удалена в 4.0. Если действительно нужна прежняя эвристика, её можно выразить как value != null && value === value.window. Для известных объектов лучше передавать нужное окно явно.

Обычный объект с object.window = object тоже пройдёт такую проверку. Если задача — проверить поддержку браузерного API, проверяйте конкретную возможность, а не тип объекта. Исторический пример использует 3.1.1.

Документация

Пример старого кода

Окно и документ: попробуйте сами

Сравните окно, документ и объект, вручную ссылающийся на себя. Последний показывает ограничение эвристики. Используется jQuery 3.1.1.

index.html
HTML
<pre id="result"></pre>
main.js
JavaScript
const imitation = {}
imitation.window = imitation
$('#result').text([$.isWindow(window), $.isWindow(document), $.isWindow(imitation)].join(' | '))