For an ordinary function, this depends on how the function is called. Calling a method through its object supplies that object as the receiver. Taking the method out and invoking it later can lose that relationship. bind creates a function with a fixed receiver; call supplies a receiver for one invocation. An arrow callback uses this from its surrounding scope instead of receiving a new one. That makes an arrow useful inside an object method that maps over a list. You will practice each call shape explicitly. Check the receiver first when a result seems to use the wrong name or quantity, then check the arithmetic or string expression.