Onto to call,apply, and bind. All three of these functions are already within every function created automatically. They are all associated with the this function.
.Bind creates a copy of whatever function you’re calling on. Whatever method you pass to this object or whatever object you pass to this method it points to by
.Call executes a function and decides what the this variable should be and the rest is just parameters that would normally pass to the function.
.Apply is the same as .bind however its parameters are in brackets because it needs to be in an array. That is the only difference from .apply and .bind.
The benefits of copying functions with apply and bind is that it literally borrows functions from other functions. Hence called borrowing functions.
Another benefit of bind is that it does something called function currying. Function currying copies a function but with preset parameters. It’s copies a function and sets a parameter like a const variable but with functions. You can stack permanent parameters is the benefit.