JS 内存管理
JS 会在定义变量时为我们分配内存
基本数据类型
直接在栈空间进行分配
复杂数据类型
在堆内存中开辟一块空间 将这块空间的指针返回值变量做引用
垃圾回收 Garbage Collection (GC)
引用计数
当有对象做引用时 就+1 当为0时--> 没有对象引用 回收
弊端: 循环引用
标记清除
从根开始往上找 没有引用的对象 做清除
闭包
[scope]
闭包又称 词法闭包 或函数闭包
生成闭包的方式
在此代码中 由于 函数嵌套函数 内部函数 对foo作用域中的 x 有引用 不能释放 因此产生闭包
由于 引用的一直存在 会产生 内存泄漏
function foo (x) {
return function (y){
return x+y
}
}