以下代码是否会形成闭包?
function f() {}
Run Code Online (Sandbox Code Playgroud)
定义此函数的位置会影响答案吗?
是的,它形成了一个闭包。
闭包是函数引用和创建函数的环境的组合。无论函数如何调用,函数中的代码始终可以访问创建函数的作用域中定义的任何变量。
例子; 即使在无法访问的范围内调用该函数,该函数f也将始终使用该变量:xx
function container() {
var x = 42;
function f() {
document.write(x);
}
return f;
}
var func = container();
func(); // displays 42
//document.write(x); // would give an error as x is not in scopeRun Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |