首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

lodash源码分析之数据类型获取的兼容性

焦虑和恐惧的区别是,恐惧是对世界上的存在的恐惧,而焦虑是在"我"面前的焦虑。

——萨特《存在与虚无》

本文为读 lodash 源码的第十九篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash

gitbook也会同步仓库的更新,gitbook地址:pocket-lodash

前言

在前文《

lodash源码分析之获取数据类型

》已经解释了获取数据类型的方法,但是在有些环境下,一些 新增的对象获取到的类型都为 ,这样就没办法做细致的区分。例如在 IE11 中,通过 获取到的 对象类型为 。 因此在 中,lodash 针对这些对象做了一些兼容性的事情。

依赖

《lodash源码分析之获取数据类型》

源码分析

的源码很简单,处理的是 、 、 、 、 等对象,下面就关键的几点说明一下。

函数的toString方法

我们都知道, 这些其实都是构造函数,函数有 的方法,调用后返回的是 这样的格式,因为其实例调用 在某些环境下返回的是 ,而构造函数的 返回的字符串中,包含了构造函数名,可以通过这点来区分。

实例中构造函数的获取

每个实例中都包含一个 的属性,这个属性指向的是实例的构造函数,在获取到这个构造函数后,就可以调用它的 方法,然后就可以比较了。

Promise.resolve

在条件判断时,使用了 ,这样使用的目的是获取到 对象,因为 是一个函数函数,如果直接调用 ,返回的是 。

License

署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)

最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:

作者:对角另一面

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180407A0CL5K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券