Roy*_*Roy 4 javascript closures
我正在尝试一个非常基本的 Javascript 闭包示例,但我无法在 Chrome devtools 中将其可视化。请看截图。
我创建了一个全局变量
var p = 3;
Run Code Online (Sandbox Code Playgroud)
和一个函数
function f1() {
var q = 2;
return p+q;
}
Run Code Online (Sandbox Code Playgroud)
这个函数在p里面使用了全局变量,所以这是一个闭包,对吧?如果我的理解不正确,请指导我。
那么,如果这是一个闭包,那么为什么它不在函数作用域中显示为“闭包”呢?
w3schools.com 说“闭包是一个可以访问父作用域的函数,即使在父函数关闭之后也是如此。” 在您的示例中, p 是在全局范围内定义的,而不是父函数。如果您将代码包装在父函数中,则在开发工具中,您将看到 p 在闭包下列出。
var f2 = function(){
var p = 3;
var f1 = function(){
var q = 2;
return p + q;
}
return f1;
}();
console.dir(f2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2092 次 |
| 最近记录: |