.. | ||
lib | ||
.editorconfig | ||
.eslintrc | ||
.jscs.json | ||
.travis.yml | ||
History.md | ||
index.js | ||
LICENSE.md | ||
package.json | ||
Readme.md |
node.extend
A port of jQuery.extend that actually works on node.js
Description
None of the existing ones on npm really work therefore I ported it myself.
Usage
To install this module in your current working directory (which should already contain a package.json), run
npm install node.extend
You can additionally just list the module in your package.json and run npm install.
Then, require this package where you need it:
var extend = require('node.extend');
The syntax for merging two objects is as follows:
var destObject = extend({}, sourceObject);
// Where sourceObject is the object whose properties will be copied into another.
// NOTE: In this situation, this is not a deep merge. See below on how to handle a deep merge.
For information about how the clone works internally, view source in lib/extend.js or checkout the doc from jQuery
A Note About Deep Merge (avoiding pass-by-reference cloning)
In order to force a deep merge, when extending an object, you must pass boolean true as the first argument to extend:
var destObject = extend(true, {}, sourceObject);
// Where sourceObject is the object whose properties will be copied into another.
See this article for more information about the need for deep merges in JavaScript.
Credit
- Jordan Harband @ljharb
License
Copyright 2011, John Resig Dual licensed under the MIT or GPL Version 2 licenses. http://jquery.org/license