I\'m trying to understand why declaring a duplicate function after a statement has executed affects it.
It\'s as if JavaScript is reading ALL functions first,
It's called Hoisting, all declarative functions and variable declarations are moved up, though undefined, at compilation.
http://code.tutsplus.com/tutorials/javascript-hoisting-explained--net-15092
http://bonsaiden.github.io/JavaScript-Garden/#function.scopes
declarative function are functions like
function name(){...}