The Magic of this, call(), apply(), and bind() in JavaScript
If you've ever looked at JavaScript code and thought:
Why is this behaving differently here?
What exactly do call(), apply(), and bind() do?
Why do people call them “function borrowing” superpowers