2016-10-22 22:04发布
或许在大神眼里挺简单的一个问题。但是我不太明白为什么。
我变量a是在console后面添加内容,为什么在前面的输出中会输出完整的数组。不应该输出undefined吗?
另外浏览器的控制台是延迟加载(lazy loading),是在你展开那个 Object 的时候,才会去枚举该对象中的每一个属性,并把它显示出来的。
不信你可以把你的console.log(b)改为console.log(JSON.stringify(b))结果是[]。
首先,在JS中,数组和对象都是引用类型,引用是在操作堆内存,他们指向的是内存里同一个数据,当b.push(a)的时候,实际上b内的元素a数组和a指向的是同一个地址,所以操作a的时候,b内的元素a数组也在改变。
最多设置5个标签!
付费偷看金额在0.1-10元之间
另外浏览器的控制台是延迟加载(lazy loading),是在你展开那个 Object 的时候,才会去枚举该对象中的每一个属性,并把它显示出来的。
不信你可以把你的console.log(b)改为console.log(JSON.stringify(b))结果是[]。
首先,在JS中,数组和对象都是引用类型,引用是在操作堆内存,他们指向的是内存里同一个数据,当b.push(a)的时候,实际上b内的元素a数组和a指向的是同一个地址,所以操作a的时候,b内的元素a数组也在改变。
一周热门 更多>