javascript - 为什么 Map() === Map() 评估为真?
问题描述
在 ImmutableJS 中,两个不同的空地图对象评估为真。为什么会这样?我认为这与基于散列或类似的比较有关。
解决方案
它不是散列,也不是任何其他类型的“魔法”,immutablejs
为两个调用返回完全相同的引用。
例如,这就是它处理空地图的方式。它将空映射分配给自己的“全局”范围,并始终重新利用相同的引用。
let EMPTY_MAP;
export function emptyMap() {
return EMPTY_MAP || (EMPTY_MAP = makeMap(0));
}
https://github.com/immutable-js/immutable-js/blob/master/src/Map.js#L637
推荐阅读
- php - 在多维php数组中查找字符串(键)
- java - 我正在尝试从主要活动中进行意向编号活动。当我运行时应用程序停止工作
- flutter-dependencies - 找不到 DartDev 快照
- angular - 是否有一个简单的解决方案可以避免从 ngx-bootstrap v5.1.2 迁移到 v6.2.0?
- javascript - 这是什么意思?警告:在 StrictMode 中不推荐使用 findDOMNode
- mysql - mysql 根据不同的和最新的时间戳选择行
- r - 当大于 r 中的库存时分配预测
- python - 如何通过在框中使用计数来识别所有数字
- java - 如何使用带有 onClick 的 RecyclerView 更新 Firestore 上的字段?
- actions-on-google - actions-on-google-java 抛出 java.lang.UnsupportedOperationException: JsonObject