垃圾收集 - 在Javascript中,即使不使用变量,也会通过闭包捕获变量
garbage collection - In Javascript does the variable is captured by closure even if it is not used?
也许这是一个愚蠢的问题,但我找不到答案。假设我们有这样的代码:
function makeFunc() {
var name = 'Billy';
var unusedVariable = 'unused';
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
据我了解,在这个例子中,当没有引用时,将收集一个变量name
,因此它将在闭包myFunc
生存期间存在。但是unusedVariable
会活下去吗myFunc
活着呢?换句话说,displayName() 是否"捕获"此unusedVariable
即使它未使用?
是的。在"makeFunc"范围内创建的所有变量都将存在于闭包中,无论是否使用。准确地说,这就是关闭的含义。在"displayName"中,您"可以"(不是"必须")引用这两个变量。
相关文章:
- 子类访问父类's闭包变量
- 构造函数函数闭包变量
- 如何冻结函数's在闭包中的变量
- 使变量可用于不带闭包的异步调用
- 局部变量在闭包中丢失
- 其中是闭包中存储的变量-堆栈或堆
- javascript闭包:保护内部变量
- Javascript:附加字符串中的事件,闭包中的变量求值
- "可变变量可从闭包“”访问;在传递给Array.prototype.every的函数中
- JavaScript闭包和变量引用
- 如果全局上下文中的变量是属性,那么为了闭包的目的,如何区分它们
- 如何访问闭包中的变量
- 闭包中的本地变量从外部更改.这是一个javascript错误,或者我做错了什么
- 使用JavaScript回调函数了解变量作用域和闭包
- 递增并存储一个“;私人的“;使用闭包的变量
- 循环和局部变量内部的闭包
- 未使用JS闭包将变量传递给onClick函数
- 函数变量闭包
- 陷入javascript变量闭包
- 用具体的例子理解Javascript中的私有变量(闭包?)