gpt4 book ai didi

javascript - 覆盖返回的对象引用

转载 作者:行者123 更新时间:2023-12-03 10:10:04 25 4
gpt4 key购买 nike

我最近正在调查Facebook's Immutable-JS库,并看到以下有趣的行为:

var map1 = Immutable.Map({a:1, b:2, c:3});
var clone = map1;

该库确保map1 !==克隆

这是如何实现的?我怀疑可以重写检索对象引用的属性方法,就像当需要对象的原始值但找不到任何对象时 Object.prototype.valueOf 执行此操作一样排序。

最佳答案

查看文档,我认为您不明白它是如何工作的:您不使用 Javascript 语法 object['key'] = value 设置/取消设置键,而是使用map.set('key', val)。然后,程序员必须将结果对象分配给某个变量,因为更新不会就地写入:它返回修改后的(并且是不可变的副本)。作为一种优化,如果 .set() 实际上没有更改键的值,它会返回 this,因此您可以断言引用相等

看起来,作为捕获编程错误的帮助,当您尝试使用 immutableMap.key = 'val' 设置键时,该库也会抛出错误(使用 immutableMap.key 读取) code> 不过应该是安全的)

关于javascript - 覆盖返回的对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30163003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com