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