Knockout extenders allow observables to be augmented with additional functionality. An extender is a function that accepts the target observable and any options, and returns the extended observable. For example, a "logChange" extender could subscribe to the target and log value changes to the console. A "numeric" extender rounds values to a specified precision on write to the observable. Extenders make it possible to extend observables with common functionality in a reusable way.