为什么 UnderscoreJS 对许多原生 Javascript 函数有包装函数?

2024-02-02

我注意到UnderScoreJS http://underscorejs.org/#isArray有很多围绕原生 Javascript 函数的包装函数。

举个例子:

_.isArray, _.isBoolean, _.isNaN?

这有什么原因吗?或者这些只是为了确保使用 underscoreJS 库时的代码一致性,或者只是为了增强这些功能?

例如,_.isArray 函数可以理解为:

_.isArray = nativeIsArray || function(obj) {
    return toString.call(obj) === '[object Array]';
  };

任何想法?


这是因为这些功能并非在所有浏览器中都存在。例如,尝试Array.isArray在 IE8 中你将找不到它。

如今,现代浏览器越来越符合 ECMAScript 标准,这样的“垫片”越来越不需要,但情况并非总是如此!

您会在大多数 Javascript 框架中发现类似的看似冗余的函数,以确保它们的任何功能都不会因为给定浏览器中缺少某个函数而引发异常。

还有类似的功能_.each(obj, func)作用于类似数组的对象,而您需要这样做时没有任何问题Array.prototype.forEach.call(obj, func)(相比arr.forEach(func)对于真正的数组)。所以这是除了确保forEach首先存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 UnderscoreJS 对许多原生 Javascript 函数有包装函数? 的相关文章

随机推荐

  • 限制CursorLoader中的查询

    我正在尝试通过 CursorLoader 从 sqlite db 查询数据 当我浏览 Android 开发者网站中的文档时 我找不到限制查询 CursorLoader Context context Uri uri String proje
  • python 3.7 urllib.request 不遵循重定向 URL

    我正在使用带有 urllib 的 Python 3 7 一切工作正常 但当它收到 http 重定向请求 307 时 它似乎没有自动重定向 这是我得到的错误 ERROR 2020 06 15 10 25 06 968 HTTP Error 3
  • 23/12/2013 是用 MM/dd/yyyy 格式映射的,为什么,为什么不是 ParseException

    有人可以帮忙吗 public void dateCalender throws ParseException System out println new SimpleDateFormat MM dd yyyy Locale ENGLISH
  • 使用代码禁用对讲

    我为盲人构建了一个应用程序 它以文本到语音的方式运行 当我打开对讲时 我的应用程序不运行 锁定在徽标屏幕上 我寻找的是当我的应用程序运行时对讲会停止 除非您已获得系统权限 否则无法在您的应用内打开或关闭 TalkBackWRITE SECU
  • USPS API 返回 80040B19 错误代码并且帐户处于生产状态

    所以我的问题是根据文档 这非常薄 而且不是最好的 我拥有的 xml 是所需的一切 但我得到了这个错误代码
  • 如何计算斜边和方位角

    我通过此链接从 DanS 获得了以下代码如何显示带有移动当前位置的地图静止图像文件 https stackoverflow com questions 7062115 android how to display a map still i
  • 调整图像大小并更改其深度

    我需要调整 IplImage 的大小并将其转换为不同深度的 CvMat 这是我到目前为止编写的代码 void cvResize2 IplImage imgSrc IplImage imgDst IplImage imgTemp imgTem
  • 选择如何使用 JSF 将参数传递到目标 bean/页面

    我已经使用 JSF 几年了 但在决定如何将参数传递到目标页面 bean 时我仍然心存疑虑 我确实认为这个问题有点复杂 有些人可能会告诉我将其分解为更小的问题 但是 我还认为以下所有问题的答案都是相关的 并且它解决了当您希望 JSF 做的只是
  • 如何在 UWP 中打印 PDF 且光栅化为 PNG 后不损失质量

    在对 UWP 中的打印进行一些调查之后 我强调了 如果不将此任务重定向到 Edge 或其他类似程序 则没有直接从应用程序打印 PDF 文档的本机方法 有一种方法可以使用打印 XAML 元素 例如图像 打印文档 有一种将 PDF 渲染为 PN
  • 设置 ant bootclasspath:JDK 1.7 有一个新的 javac 警告,用于设置没有 bootclasspath 的旧源

    如何将 ant bootclasspath 与 source 1 5 target 1 5 结合使用 这怎么可能不是 1 5 JDK 的硬编码路径呢 我可以将环境变量设置为 bootclasspath 类似于从 ant 使用 JAVA HO
  • 套接字连接被中止 - WCF

    我有一个简单的客户端服务器应用程序 当我启动服务器并通过客户端发送消息时 它使用 WCF netTcpBinding 一切正常 但是当我手动关闭服务器并再次打开它时 无需在以下位置关闭客户端应用程序 所有 下次客户端尝试向服务器发送消息时
  • Objective-C 中的 AES 字符串加密

    我的 Objective C 应用程序需要做string加密 特别是nsstring questions tagged nsstring 我发现 AES 是可供消费者使用的最安全的加密方法 我也了解如何将字符串转换为NSData然后回来 只
  • 如何为类本身(而不是类的实例)选择自定义字符串表示形式?

    考虑这个类 class foo object pass 默认的字符串表示形式如下所示 gt gt gt str foo
  • 如何使用 UI-Router 仅更新命名视图

    我正在创建一个网络应用程序来帮助学生学习科学 历史和数学 当您第一次登陆该网站时 我有一个主页 登陆页面 当您单击 开始 时 我会转到 exam instructions 我的每个步骤都说明了我加载到的模板中的数学和科学ui view ex
  • IBAction、IBOutlet 等中的 IB 是什么意思?

    我对 iPhone 开发非常陌生 我经常遇到IBAction IBOutlet阅读 Objective C 和 Swift 代码时等等 什么是IB代表 界面生成器 在 Xcode 4 之前 接口文件 XIB 和 NIB 是在名为 Inter
  • 尽管没有使用布尔值,但我得到“类型不匹配无法从 int 转换为布尔值”

    我正在 Java如何编程 一书中做练习 我应该制作一个模拟抛硬币的应用程序 我应该创建一个方法 翻转 它随机返回硬币的一面 我决定让该方法返回 1 或 2 并且在主方法中我将这些值 转换 为硬币的一面 问题是我收到一条错误消息 类型不匹配
  • TextView 中的链接

    我需要将链接放在TextView 我有一个包含标签的字符串 a href link Text for link a 和一些其他文字 问题是 如果我运行该项目 我可以看到文本 但不可单击 我尝试过 b 也标记一下看看是否有效 但似乎也不起作用
  • tm.package:findAssocs 与 Cosine

    我是新来的 我的问题是数学问题而不是编程性质 我想就我的方法是否有意义获得第二意见 我试图使用该函数在我的语料库中找到单词之间的关联findAssocs 来自tm包裹 尽管它在通过该包提供的数据 例如 纽约时报 和美国国会 上表现得相当不错
  • PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器

    我正在使用 dompdf 库创建基于表格的 PDF 我可以在线查看它 也可以将其下载到选择的用户文件夹中 但我想做的是将其保存到远程服务器 我不需要将其保存到用户电脑 就像一个自动上传脚本 它会创建文件然后将其上传到远程服务器 所以我稍后可
  • 为什么 UnderscoreJS 对许多原生 Javascript 函数有包装函数?

    我注意到UnderScoreJS http underscorejs org isArray有很多围绕原生 Javascript 函数的包装函数 举个例子 isArray isBoolean isNaN 这有什么原因吗 或者这些只是为了确保