我想我们可以说当浏览器没有该功能的ToStringTag
时,功能没有完全实现。
例如,IE 11支持Map,Set和WeakMap,但它们没有ToStringTag。因此,Lodash中的某些单元测试失败了。
根据Mozilla documentation,跨浏览器问题有三个主要原因:1)"有时浏览器存在错误,或者实现不同的功能。" 2)"某些浏览器可能对其他浏览器提供不同级别的技术功能支持。" 3)"某些设备可能存在导致网站运行缓慢或显示不良的约束。"。
我正在分析研究论文的一些跨浏览器失败的原因。我认为这个例子与第二个原因有关。你有什么看法?
答案 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的匹配。