The Magic of this, call(), apply(), and bind() in JavaScript
Ever felt like JavaScript was playing a prank on you? One minute this refers to your object, and the next, it’s pointing at the entire browser window.
Don't worry—you’re not alone. Mastering this and
difference-of-js-function-declaration-vs-function-expression.hashnode.dev11 min read