Always had an issue with scope and functions like call() and apply() in javascript - until now.

Two easy-to-read sources are: