访问函数内部的函数

function a(){ 
  var test = 1; 
    var b = function(){ 
      alert(test); 
    } 
    return b;
}

var c = a(); //闭包

c();

javascript 语言精粹中解释为

通过函数字面量创建的函数对象包含一个连接到外部上下文的连接.这被成为闭包.

  1. 函数字面量: var b = function(){ /*action*/ } 中, function(){ /*action*/ }被认为是函数字面量,在调用时,函数不会执行,而是被当做数据来传递.

2.上下文: 由context翻译来,叫容器可能更恰当一些.其实整个function a(){ }中出去b的部分,既是上下文.