加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular JS:当对象引用另一个对象时,angular.copy

发布时间:2020-12-17 10:21:33 所属栏目:安全 来源:网络整理
导读:我有以下 JavaScript / Angular代码: var a = {};var b = {};a.ref = b;b.ref = a;angular.copy(a); 当angular.copy触发时,浏览器会锁定.我假设这是因为复制功能正在进行深层复制,当它开始复制b的引用时,它进入b然后想要复制它的引用,从而创建一个圆形副本,
我有以下 JavaScript / Angular代码:
var a = {};
var b = {};
a.ref = b;
b.ref = a;
angular.copy(a);

当angular.copy触发时,浏览器会锁定.我假设这是因为复制功能正在进行深层复制,当它开始复制b的引用时,它进入b然后想要复制它的引用,从而创建一个圆形副本,这将永远不会结束.

这个假设是对的吗?如果是这样,有没有办法避免这种情况?我假设答案将涉及改变数据的外观,但我很想听到别人的想法.

你的假设是对的,问题是循环引用. JSON.stringify也会抱怨这个结构. jQuery.extend在一个非常基本的层次上检测循环引用,并且可以在这里处理你的基本示例,但是 jQuery.extend has its own issues as well.如果你已经在使用jQuery,你可以使用extend,但是否则你可能想看看你自己写的东西,或者你可以使用我通过Google找到的这个花哨的cloneObject函数:

https://gist.github.com/NV/1396086

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读