|
|
- [![Build Status][travis-svg]][travis-url]
- [![dependency status][deps-svg]][deps-url]
- [![dev dependency status][dev-deps-svg]][dev-deps-url]
-
- # extend() for Node.js <sup>[![Version Badge][npm-version-png]][npm-url]</sup>
-
- `node-extend` is a port of the classic extend() method from jQuery. It behaves as you expect. It is simple, tried and true.
-
- Notes:
-
- * Since Node.js >= 4,
- [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
- now offers the same functionality natively (but without the "deep copy" option).
- See [ECMAScript 2015 (ES6) in Node.js](https://nodejs.org/en/docs/es6).
- * Some native implementations of `Object.assign` in both Node.js and many
- browsers (since NPM modules are for the browser too) may not be fully
- spec-compliant.
- Check [`object.assign`](https://www.npmjs.com/package/object.assign) module for
- a compliant candidate.
-
- ## Installation
-
- This package is available on [npm][npm-url] as: `extend`
-
- ``` sh
- npm install extend
- ```
-
- ## Usage
-
- **Syntax:** extend **(** [`deep`], `target`, `object1`, [`objectN`] **)**
-
- *Extend one object with one or more others, returning the modified object.*
-
- **Example:**
-
- ``` js
- var extend = require('extend');
- extend(targetObject, object1, object2);
- ```
-
- Keep in mind that the target object will be modified, and will be returned from extend().
-
- If a boolean true is specified as the first argument, extend performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s).
- Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over.
- Warning: passing `false` as the first argument is not supported.
-
- ### Arguments
-
- * `deep` *Boolean* (optional)
- If set, the merge becomes recursive (i.e. deep copy).
- * `target` *Object*
- The object to extend.
- * `object1` *Object*
- The object that will be merged into the first.
- * `objectN` *Object* (Optional)
- More objects to merge into the first.
-
- ## License
-
- `node-extend` is licensed under the [MIT License][mit-license-url].
-
- ## Acknowledgements
-
- All credit to the jQuery authors for perfecting this amazing utility.
-
- Ported to Node.js by [Stefan Thomas][github-justmoon] with contributions by [Jonathan Buchanan][github-insin] and [Jordan Harband][github-ljharb].
-
- [travis-svg]: https://travis-ci.org/justmoon/node-extend.svg
- [travis-url]: https://travis-ci.org/justmoon/node-extend
- [npm-url]: https://npmjs.org/package/extend
- [mit-license-url]: http://opensource.org/licenses/MIT
- [github-justmoon]: https://github.com/justmoon
- [github-insin]: https://github.com/insin
- [github-ljharb]: https://github.com/ljharb
- [npm-version-png]: http://versionbadg.es/justmoon/node-extend.svg
- [deps-svg]: https://david-dm.org/justmoon/node-extend.svg
- [deps-url]: https://david-dm.org/justmoon/node-extend
- [dev-deps-svg]: https://david-dm.org/justmoon/node-extend/dev-status.svg
- [dev-deps-url]: https://david-dm.org/justmoon/node-extend#info=devDependencies
-
|