Understanding this, call(), apply(), and bind() in JavaScript
JavaScript has many confusing things, but this is probably in the top three. The other two are usually why something works and why it stopped working after you touched it.
But the idea behind this is
being-javascripted.hashnode.dev5 min read