如果浏览器没有该功能的“ToStringTag”,则功能是否未完全实现?

时间:2018-02-05 07:41:02

标签: javascript cross-browser

我想我们可以说当浏览器没有该功能的ToStringTag时,功能没有完全实现。 例如,IE 11支持Map,Set和WeakMap,但它们没有ToStringTag。因此,Lodash中的某些单元测试失败了。

根据Mozilla documentation,跨浏览器问题有三个主要原因:1)"有时浏览器存在错误,或者实现不同的功能。" 2)"某些浏览器可能对其他浏览器提供不同级别的技术功能支持。" 3)"某些设备可能存在导致网站运行缓慢或显示不良的约束。"。

我正在分析研究论文的一些跨浏览器失败的原因。我认为这个例子与第二个原因有关。你有什么看法?

1 个答案:

答案 0 :(得分:1)

由于the specification that added Map, Set, and WeakMap定义他们将拥有@@ toStringTag并且Object.prototype.toString将使用它,那么是,如果IE11具有(例如)Map但是Object.prototype.toString.call(new Map)没有& #39; t返回[object Map],因为它已指定它应该Map 完全实施,它部分 已实施。是的,这似乎是你#2的匹配。