Any executable code that is passed as an argument to other code that is expected to ‘call back’ (execute) the argument at a given time. This execution may be immediate, as in a synchronous callback, or it might happen at a later time, as in an asynchronous callback.