• 这是个 Higher-order function 的典型例子。

    1. var fnRef = outerFn(); #=>Outer function outerFn() 执行,于是先执行 console.log('Outer function');稍后返回 innerFn 并赋值于 fnRef 中。

    2. fnRef(); #=>Inner function 由于前面的函数返回并赋值,fnRef 中保存的实际上是 innerFn 函数的引用。因此调用 fnRef() 等同于 innerFn()。

    可参考:http://eloquentjavascript.net/05_higher_order.html