Историческая функция $.isWindow()
Определение и применение
Функция $.isWindow() определяла, похож ли переданный объект на окно браузера. Она встречается в старом
коде, который различает окно, документ и обычный DOM-элемент при вычислении размеров или назначении событий.
Синтаксис
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
<pre id="result"></pre>
main.js
const imitation = {}
imitation.window = imitation
$('#result').text([$.isWindow(window), $.isWindow(document), $.isWindow(imitation)].join(' | '))
Нажмите , чтобы запустить пример.