一个简单的闭包

闭包通常在其作用域内引用变量或分配变量,作为函数的参数或者返回值。

闭包发生在Stack帧上,所以函数返回后不会被立即释放。

function sayHello2(name) {
    var text = 'Hello ' + name; // Local variable
    var say = function() { console.log(text); }
    return say;
}
var say2 = sayHello2('Bob');
say2(); // logs "Hello Bob"