js-闭包

73 阅读1分钟

代码

    var t = null;
    var replaceThing = function() {
        var o = t
        var unused = function() {
            if (o)
                console.log("hi")
        }
        t = {
                longStr: new Array(1000000).join('*'),
                someMethod: function() {
                  console.log(1)
                }
            }
    }
    setInterval(replaceThing, 1000)

画图理解:

closure.png

参考:浏览器是怎么看闭包的。