- 函数内的变量赋值给外部
var global1
(function() {
var a = {}
var b = [1]
global1 = b
})()
- 函数内部的变量返回给外部
var global2
global2 = (function() {
var a = {}
var b = [2]
return b
})()
上述2个例子中的函数是否会释放,函数内部的a
b
是否会释放?
另外,是否可以利用Chrome工具查看函数是否会释放?
谢谢大神们~
chrome可以查看

调用栈
和作用域对象
:变量
a
和b
都是函数内的局部变量,保存在栈内的(变量引用指向的值{}
和[2]
保持在堆内的),函数执行完后变量本身就释放了。但是堆中的数据[2]
由于被全局变量global1
引用着 不会被回收