Отличие объектов jQuery от JS: надежные проверки типов
Быстрый ответ
Для того чтобы убедиться, что объект является экземпляром jQuery, используйте следующий код:
const isJQuery = obj instanceof jQuery;
Переменная isJQuery
получит значение true
, если объект принадлежит типу jQuery, и false
, если это не так.
Детальные способы проверки объектов
Для обеспечения надёжности кода важно точно определить, является ли объект экземпляром jQuery.
Применение оператора instanceof
Оператор instanceof
позволяет установить, принадлежит ли объект определённому типу. Если obj
— это объект jQuery, то результатом будет true
.
const isJQuery = obj instanceof jQuery;
Проверка свойства .jquery
Свойство .jquery
хранит версию jQuery и присутствует у всех объектов, созданных с помощью этой библиотеки.
const isJQuery = obj && obj.jquery ? true : false;
Оно может быть полезно при подтверждении принадлежности объекта к типу jQuery.
Переход от $(foo)
к new jQuery(foo)
Понимание того, как вызов $(foo)
превращается в new jQuery(foo)
, важно для работы с библиотекой. Этот процесс гарантирует правильное использование конструктора и установку свойств объекта jQuery.
Создание функции для повторяющихся проверок
Если необходимо выполнить много проверок, можно создать функцию, которая будет отвечать за определение принадлежности объекта к типу jQuery.
function isjQueryObject(obj) {
return obj instanceof jQuery || (obj && obj.jquery);
}
Другие способы подтверждения типа объекта jQuery
Есть и другие методы для проверки, является ли объект экземпляром jQuery.
Метод isPrototypeOf()
С помощью метода isPrototypeOf()
можно определить вхождение объекта в цепочку прототипов другого объекта.
const isJQuery = jQuery.prototype.isPrototypeOf(obj);
"Короткое замыкание" для ускорения проверки
"Короткое замыкание" позволяет ускорить процесс валидации.
const isJQuery = obj instanceof jQuery || (obj && obj.jquery);
Проверка останавливается, как только обнаружено первое истинное значение.
Проверка версии jQuery
Сравнение версии из свойства jquery
с текущей версией библиотеки jQuery также может подтвердить принадлежность объекта к типу jQuery.
const isJQuery = obj && obj.jquery === jQuery.fn.jquery;
Использование свойства constructor
Свойство constructor
поможет уточнить, что объект был создан с помощью конструктора jQuery.
const isJQuery = obj && obj.constructor && obj.constructor === jQuery;
Визуализация
Представьте себе собрание объектов разных типов, и некоторые из них "одеты" в "костюмы" jQuery.
if (guest instanceof jQuery) {
// "Отлично, у вас костюм jQuery!"
} else {
// "Извините, для участия вам нужен костюм jQuery."
}
Всё просто: "Чей вы – jQuery или нет?"
Вы в обличии jQuery?
🎟️ Да против ❌ Нет
Использование условных операторов: замыкания в JavaScript и значения truthy/falsy
Псевдоним jQuery в замыканиях
При работе с jQuery в замыканиях лучше всего создать псевдоним $
, который устранит любую путаницу и гарантирует чистоту области видимости.
(function($) {
// Тут "$" — это псевдоним jQuery.
})(jQuery);
Понимание значений truthy и falsy
Знание о том, как JavaScript обрабатывает значения truthy и falsy, поможет вам составлять надёжные условные выражения.