Extends objects by copying properties from one or more source objects. Offers deep merging, shallow merging, and overwriting options. Handles circular references gracefully, preventing stack overflows. Useful for creating complex configurations, applying default settings, and combining multiple data sources into a single object. Lightweight and dependency-free, making it a quick and efficient addition to any JavaScript project.