This chapter explains how a function's call‐site determines the value this will have within the function. JavaScript follows a simple set of rules when determining what value this should be bound to. The chapter reviews these rules to set the stage for the primary topic covered here: apply, call, and bind, the functions that JavaScript provides as part of Function.prototype, which allow programmers to explicitly control the value to which this is bound. It describes the four types of bindings that JavaScript uses to set the value of the variable within a function. These bindings include: default binding, implicit binding, new binding, and explicit binding. The examples presented here highlight that JavaScript developers would benefit from avoiding the use of this altogether. The chapter presents scenarios where call, apply, and bind are used, and further highlights important aspects of testing code that uses those functions.