博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ext.data.Store 中 data 的克隆原理
阅读量:7054 次
发布时间:2019-06-28

本文共 839 字,大约阅读时间需要 2 分钟。

hot3.png

前端时间开发的时候,需要将Ext.data.Store中的data先储存到一个变量中,然后将把这个store的data清空,最后再把变量中的data load到store中。

代码是这样的:

var tempData = this.store.data.clone();/* Something else */this.store.loadData([]);/* Something else */this.store.loadData(tempData);

这个时候你会发现,当执行到最后一行的时候,其实tempData的size已经是0,为什么?

大家肯定会想到深拷贝和浅拷贝的区别,答案就在于data (Ext.util.MixedCollection)的clone是浅拷贝

(  ) : 

Creates a shallow copy of this collection

Available since: 4.0.0

Returns

所以要达到我们的需求,必须自己来实现一个deepCopy的动作:

var tempData = this.store.data;var r = new Ext.util.MixedCollection();var keys = tempData.keys;var items = tempData.items;for(var i = 0, len = items.length; i < len; i++){    r.add(keys[i], items[i].copy());}this.store.loadData([]);for (var i = 0, len = r.items.length; i < len; i++) {    this.store.loadData([r.items[i].data], true);}

  

 

转载于:https://my.oschina.net/gagabear/blog/316296

你可能感兴趣的文章
11月17日
查看>>
java并发编程:如何创建线程
查看>>
第七天-列表、元祖、字典、集合、数字类型
查看>>
吴忠军-临沂一业主未交取暖费新房却被淹,损失咋处理?
查看>>
Win 7—搭建FTP服务器配置
查看>>
Android项目实战_手机安全卫士程序锁
查看>>
PHP连接MYSQL数据库的3种常用方法
查看>>
C++类中的特殊成员函数-------复制构造函数
查看>>
barManager.Menu(barSubItem)
查看>>
敏感词的过滤
查看>>
运维常用工具
查看>>
ajax写用户注册
查看>>
Prony算法
查看>>
登录界面 动画背景效果
查看>>
day1-Vsftpd
查看>>
洛谷P2296 寻找道路==codevs3731 寻找道路
查看>>
Ubuntu删除history记录
查看>>
关闭或开启Linux上的iptables防火墙,SSH端口(转)
查看>>
Send Mail 网址
查看>>
最小生成树Kruskal——最优布线问题(codevs 1231) (可做Kruscal模板)
查看>>