内存图和垃圾回收机制

2018-07-11  本文已影响0人  潘千千

注意:内存图一到六栈和堆写反了,,应该是图七的样子。并且黑色和蓝色笔触有先后顺序
本篇文章用几道题和他们的内存图来解释下对象的引用,以及浏览器的垃圾回收机制.
下面有几句知识点需要记下来:

第一部分、例题:
1、求a是多少?

var a = 1
var b = a
    b = 2
    a = ?

内存图一:

image.png
解释:

2、求a.name是多少?

var a = {name:'a'}
var b = a
    b = {'name':'b'}
    a.name = ?

内存图二:

image.png

解释:


3、求a.name是多少?

var a = {name:'a'}
var b = a
    b.name='b'
    a.name = ?

内存图三:

image.png

解释:


4、求a = ?

var a = {name:'a'}
var b = a
    b=null
    a = ?

内存图四:

image.png

解释:

var a;
a = {self:a}
    a.self 即为undefined
a = {self:undefined}

解释:


6、求a .self.self.self....?

var a = {}
a.self = a

内存图六:

image.png
解释:

7、求a.x = ?b.x = ?

var a = {n:1}
var b = a
    a.x = a = {n:2}
    a.x = ?
    b.x = ?

内存图七:

image.png
解释:
var a = {name:'a'}
var b = {name:'b'}
    a = b

内存图1:

image.png

解释:

var fn = function(){}
document.body.onclick = fn
fn = null

内存图2:

image.png
解释:
window.onunload = function(){
  document.body.onclick = null://这里代指事件,真正写的时候只要是有的事件都要设置为null。
}

画图不易,且看且珍惜,如果要转载请注明出处哦~~
上一篇下一篇

猜你喜欢

热点阅读