关于前端内存相关的问题?-灵析社区

喵酱魔法师

class B { } class A { constructor() { this.b = new B() } } class BList { constructor() { this.values = [] } push(b) { this.values.push(b) } } const aArray = Array(1000).fill('').map(() => new A()) var bList = new BList() //aArray.forEach(a => { bList.push(a.b) }) ![图片](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/f5caa40bc34708b791c24da2424f592e.png) 在放开最后一行注释后执行 : A的引用内存反而降低了,A对B的引用好像并没有解除,为什么会降低内存了? ![图片](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/187cdef29d88cfe052a22530ee2ce173.png) 为什么A对象的内存降低了呢 ==========================================update class B {} class A { constructor () { this.b = new B() } } class BList { constructor () { this.values = [] } push (b) { this.values.push(b) } } const aArray = Array(1000000).fill('').map(() => new A()) const bList = new BList() aArray.forEach(a => { bList.push(a.b) }) ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/5e2bd8b773ef4d7d7572238f5fc973c8.png) 1.Blist.values 对应的指针; 2.A.b 对应的指针; 3.Blist.values 指向的数组的指针。 这三个对象是指这样吗,可不可以解释一下

阅读量:13

点赞量:0

问AI
retained size指的是A对象被回收时,总共可以回收的内存大小 当B对象被其他对象引用后,A对象回收后不能使B对象也回收,所以retained size不会包含B对象的内存大小