首页 > 解决方案 > 问:我无法理解 jquery 中的“var variable = {”

问题描述

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

标签: jqueryfunctionuser-agent

解决方案


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

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

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

所有这些一起允许其他代码通过调用来确定它是否在 android 浏览器中运行isMobile.Android()

或者 iOS 通过调用isMobile.iOS(),等等。

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


每个浏览器都提供一个名为的变量navigator,其中包含有关浏览器的信息,包括一个userAgent属性,该属性提供有关它是哪个浏览器和版本的线索。我正在运行 Brave,这就是我的navigator样子。我已经突出显示了该userAgent部分。

勇敢的导航器截图

userAgent价值观可能有点令人愤怒。我正在运行 Brave,但 userAgent 字符串提到了 Mozilla、Gecko、Chrome 和 Safari。啊。但那是另外一罐蠕虫。

正如我所说,您可以在此值中查找有关您正在运行的浏览器的线索。为此,此代码使用正则表达式。正则表达式是一种强大的模式匹配语法,用于在字符串中查找子字符串或模式。太复杂了,我无法在这里详细解释,但作为一个例子,表达式userAgent.match(/iPhone|iPad|iPod/i)正在查找值中的任何单词“iPhone”、“iPad”或“iPod” userAgent。(斜线之间的部分是模式,尾部i是一个标志,使搜索不区分大小写。)


推荐阅读