Explicitly set the 'this' context for a function.
Since the value of `this` is dynamic and depends on how a function is called, there are times when you need to explicitly control what `this` refers to. JavaScript provides three function methods for this purpose: `call`, `apply`, and `bind`. The `call` and `apply` methods both invoke a function immediately, but they allow you to specify the `this` context for that invocation. The first argument for both is the value you want `this` to be. The difference lies in how they handle the function's arguments: `call` accepts the arguments as a comma-separated list, while `apply` accepts them as a single array. This makes `apply` useful when you have an array of arguments to pass. The `bind` method is different. Instead of calling the function immediately, `bind` returns a *new* function where the `this` context is permanently bound to the value you provide. The new function can be called later, and it will always have the correct `this` value, regardless of how it's invoked. This is incredibly useful for event handlers and callbacks, where the context of `this` is often lost. For example, you can bind a method to its object instance before passing it as a callback.