JavaScript Functions & Scope: Declarations, Closures, and the Magic of 'this' | Abdul Barcky