Q: я не могу понять "var variable = {" в jquery - PullRequest
1 голос
/ 28 мая 2019

Я изменяю исходный код jQuery, который запрограммировал другой человек.

Но было определение var, которое я не могу понять.

Я понятия не имел об этом коде,поэтому я гуглил и искал, но не смог найти ответов.

js

var isMobile = {
  Android: function() {
    return navigator.userAgent.match(/Android/i);
  },
    BlackBerry: function() {
    return navigator.userAgent.match(/BlackBerry/i);
  },
    iOS: function() {
    return navigator.userAgent.match(/iPhone|iPad|iPod/i);
  },
    Opera: function() {
    return navigator.userAgent.match(/Opera Mini/i);
  },
    Windows: function() {
    return navigator.userAgent.match(/IEMobile/i);
  },
    any: function() {
    return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
  }
};

Я хочу знать, что означает этот код.

Кроме того, я хотел бы знать синтаксис, такой как

js

 var isMobile = {
   Android: function() {
     return window.navigator.userAgent.match(/Android/i);
 },

Что означает Android:?

Ответы [ 3 ]

1 голос
/ 28 мая 2019

Этот код определяет объект и присваивает его переменной с именем «isMobile».

«Android» является свойством этого объекта, а его значение является функцией.

Функция выполняет проверку строки пользовательского агента браузера, чтобы определить, работает ли она в браузере Android.

Все это вместе позволяет другому коду определять, работает ли он в браузере Android, вызывая isMobile.Android().

Или iOS, позвонив по номеру isMobile.iOS() и т. Д.

isMobile.any() перебирает другие функции, вызывая их, чтобы проверить, истинны ли любые из них; поэтому, если вы хотите знать, работаете ли вы на мобильном устройстве, но не заботитесь о том, какого именно типа, воспользуйтесь этим.


Каждый браузер предоставляет переменную с именем navigator, которая содержит информацию о браузере, включая свойство userAgent, которое дает подсказки о том, какой браузер и версия это. Я управляю Храбрым, и вот как выглядит navigator для меня. Я выделил userAgent часть.

Brave navigator screenshot

userAgent значения могут приводить в бешенство. Я использую Brave, но в строке userAgent упоминаются Mozilla, Gecko, Chrome и Safari. Тьфу. Но это совсем другая банка червей.

Как я уже сказал, вы можете найти подсказки о том, какой браузер вы используете в этом значении. Для этого в этом коде используются регулярные выражения . Регулярные выражения - это мощный синтаксис сопоставления с образцом, используемый для поиска подстрок или образцов в строках. Слишком сложно для меня, чтобы объяснить здесь подробно, но в качестве примера выражение userAgent.match(/iPhone|iPad|iPod/i) ищет любое из слов "iPhone", "iPad" или "iPod" в значении userAgent. (Часть между косыми чертами - это шаблон, а завершающий i - это флаг, который делает поиск нечувствительным к регистру.)

0 голосов
/ 28 мая 2019

Этот код создает объект "isMobile" и объявляет функции для проверки типа мобильного браузера.Проверьте https://www.w3schools.com/js/js_object_definition.asp для создания объектов в JavaScript.

Чтобы объяснить следующий фрагмент кода:

    var isMobile = {
  Android: function() {
    return window.navigator.userAgent.match(/Android/i);
  }
  • isMobile является объектом JavaScript.
  • Andorid является свойством объекта isMobile.Это свойство проверяет, является ли браузер, используемый для навигации по веб-странице, «браузером Android».«window.navigator.userAgent.match (/ Android / i)» эта часть кода возвращает значение true, если браузер является браузером «Andorid».
0 голосов
/ 28 мая 2019

isMobile возвращает объект с парами ключ-значение.Ключами являются, например, Android и Blackberry, а их значения в основном являются методами / функциями, которые вызываются только при попытке доступа к ним.Например, вызов isMobile.Android() фактически вызовет функцию и проверит, соответствует ли пользовательский агент строке по вашему выбору.

Вы можете видеть isMobile как объект с методами, доступными по ключам, к которым вы можете обращатьсяпроверьте, соответствуют ли пользовательские агенты браузера определенным критериям.

...