JavaScript’s Hidden Treasures : Closures and Hoisting