this is determined by the call site. call/apply invoke the function immediately with an explicit this, while bind returns a new function with this permanently set.
Expanding on the short answer — what usually matters in practice:
A tiny example (an explanation template):
// Example: discuss trade-offs for "how-does-this-binding-work,-and-how-do-call/appl"
function explain() {
// Start from the core idea:
// this is determined by the call site. call/apply invoke the function immediately with an ex
}