adapted from Chapter 2 in "You Don't Know JS" here
Key Point: The call-site determines where this
will reference during the execution of a function. There are essentially 4 rules governing how the call-site determines where this
will point during the execution of a function.
Rule 1. Default Binding when not in 'strict'
mode
function foo() {