问:我无法理解 "var variable = {" 中的 jquery

Q: I can't understand "var variable = {" in jquery

我正在修改另一个人编写的 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: 是什么意思?

此代码正在定义一个对象并将其分配给名为“isMobile”的变量。

“Android”是那个对象的属性,它的值是一个函数。

该函数对浏览器的用户代理字符串进行测试,以确定它在 android 浏览器中是否为 运行。

所有这些一起允许其他代码通过调用 isMobile.Android().

来确定它在 android 浏览器中是否是 运行

或通过调用 isMobile.iOS() 或 iOS,依此类推。

isMobile.any() 遍历其他函数,调用它们以查看它们中的 any 是否为真;所以如果你想知道你是否 运行 在移动设备上但不关心具体是哪种,你可以使用这个。


每个浏览器都提供一个名为 navigator 的变量,其中包含有关浏览器的信息,其中 userAgent 属性 提供有关浏览器和版本的线索。我 运行 勇敢,这就是 navigator 对我来说的样子。我突出显示了 userAgent 部分。

userAgent 值可能有点让人恼火。我是 运行 Brave,但 userAgent 字符串提到了 Mozilla、Gecko、Chrome 和 Safari。啊。但那是另外一回事。

如我所说,您可以在此值中寻找有关您 运行 浏览器的线索。为此,此代码使用 regular expressions。正则表达式是一种强大的 pattern-matching 语法,用于在字符串中查找子字符串或模式。太复杂了,我无法在这里详细解释,但作为示例,表达式 userAgent.match(/iPhone|iPad|iPod/i) 正在查找 "iPhone"、"iPad" 或 "iPod" userAgent 值。 (斜杠之间的部分是模式,尾部 i 是进行搜索的标志 case-insensitive。)

isMobile 正在返回具有 key-value 对的对象。关键是,例如AndroidBlackberry,它们的值基本上是 methods/functions,只有在您尝试访问它们时才会调用。例如。通过调用 isMobile.Android() 将实际调用函数并检查用户代理是否匹配您选择的字符串。

您可以将 isMobile 视为一个对象,该对象具有可通过键访问的方法,您可以调用它来检查浏览器的用户代理是否符合特定条件。

此代码创建 "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 browser"。 "window.navigator.userAgent.match(/Android/i)" 代码中的这一部分 returns 如果浏览器是 "Andorid" 浏览器则为真。