Explaining JavaScript scope and closures · HackerTrans