函数作用域和块作用域
函数作用域
每一个都可以作为容器,其中包含了标识符(变量、函数)的定义。
function foo(a) {
var b = 2;
// 一些代码
function bar() {
// ...
}
//更多代码
var c = 3
}
在本代码示例中:
全局作用域:有自己的作用域气泡,它只包含了一个标识符foo。
foo(…)作用域:气泡中包含了标识符 a ,b,bar,c。
bar(…)作用域:气泡中包含了。
*无论标识符声明出现在作用域中的何处,这个标识符所代表的变量或函数都将附属于所处作用域的气泡 *
函数作用域的含义是指,属于这个函数的全部变量都可以在整个函数的范围内使用及复用(事实上在嵌套的作用域中也可以使用)。这种设计方案是非常有用的,能充分利用JavaScript变量可以根据需要改变值类型的“动态”特性。
隐藏内部实现
从所写的代码中挑选出一个任意的片段,然后用函数声明对它进行包装,实际上就是把这些代码“隐藏”起来了。