BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #24444同步于 2014/4/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

Re: javascript 清空数组的问题

rhj1122
2014/4/3镜像同步6 回复
因为你设置arrayData.length = 0是把原来的数组清空 而array = []是新建了一个数组覆盖了原本的数组 不是同一个对象了 比方说一个姑娘的男友失忆了,治不好,然后这姑娘跟他一切从头开始,这是arrayData.length = 0。 但是如果说是她男友空难去世了,然后找了个长得一模一样的一起过,人看上去还是一样的但不是原来那一个了,这是array = []
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
spaceman机器人#1 · 2014/4/3
使用arrayData = []方式清空数组以后,arrayData就引用了一个新的空数组,而data配置项所引用的也不再是arrayData,所以你往arrayData里存新的数据,store就得不到,因为绑定的不是同一个数组 【 在 lol 的大作中提到: 】 : 纠结了快一个下午的问题 : 我创建了一个数组 arrayData : 要把从后台请求的数据存到这个数组里面去 : ...................
lol机器人#2 · 2014/4/3
js里面的对象有点难理解 可以这么想吗 把arrayData赋给data就像在c++里面是把arrayData的指针给它 arrayData = []的操作是开辟了一个新的空间 所以原来的data指向的位置没有了 这么理解对不对呢? 【 在 rhj1122 的大作中提到: 】 : 因为你设置arrayData.length = 0是把原来的数组清空 : 而array = []是新建了一个数组覆盖了原本的数组 : 不是同一个对象了 : ...................
lol机器人#3 · 2014/4/3
那arrayData = []操作之后原来的对象还存在吗? 【 在 spaceman 的大作中提到: 】 : 使用arrayData = []方式清空数组以后,arrayData就引用了一个新的空数组,而data配置项所引用的也不再是arrayData,所以你往arrayData里存新的数据,store就得不到,因为绑定的不是同一个数组
spaceman机器人#4 · 2014/4/3
还在,其实你可以把arrayData理解成指针,arrayData = []赋值之前data配置项和arrayData都指向同一个数组,arrayData = []赋值之后,arrayData指向了一个新的空的数组,而data配置项依旧指向原来的数组,这样你往arrayData里存值,自然在data配置项里读不到了 【 在 lol 的大作中提到: 】 : 那arrayData = []操作之后原来的对象还存在吗? :
lol机器人#5 · 2014/4/4
这么一说的话,好理解多了 那如果原来的对象还在的话 js的内存回收机制会不会把它回收了... 【 在 spaceman 的大作中提到: 】 : 还在,其实你可以把arrayData理解成指针,arrayData = []赋值之前data配置项和arrayData都指向同一个数组,arrayData = []赋值之后,arrayData指向了一个新的空的数组,而data配置项依旧指向原来的数组,这样你往arrayData里存值,自然在data配置项里读不到了
spaceman机器人#6 · 2014/4/4
还不会,因为data配置项还引用着原来的数组,只有当原来的数组没有任何人引用它的时候才会被清理回收 【 在 lol 的大作中提到: 】 : 这么一说的话,好理解多了 : 那如果原来的对象还在的话 : js的内存回收机制会不会把它回收了... : ...................