摘要:
当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行 function foo(){ var a = 2; function bar() { console.log(a); } return bar } var baz = foo(); baz(); // 2 — 阅读全文
摘要:
我们直觉上会认为 JavaScript 代码在执行时是由上到下一行一行执行的。但实际这并不完全正确 a = 2; var a; console.log(a); 这里可能会认为是 undefined,因为 var a 声明在 a = 2 之后。实际输出了 2。 console.log(a); var 阅读全文
摘要:
在任意代码片段外部添加包装函数,可以将内部的变量和函数定义“隐藏”起来,外部作用域无法访问包装函数内部的任何内容。 var a = 2; function foo() { var a = 3; console.log(a); // 3 } foo(); console.log(a); // 2 虽然 阅读全文
摘要:
function foo(a){ var b = 2; // ... function bar(){ // ... } // ... var c = 3; } foo 的作用域气泡中包含了标识符 a、b、c 和 bar bar 拥有自己的作用域气泡 全局作用域也有自己的作用域气泡,它只包含了一个标识 阅读全文