1 | # object-assign [![Build Status](https://travis-ci.org/sindresorhus/object-assign.svg?branch=master)](https://travis-ci.org/sindresorhus/object-assign)
|
---|
2 |
|
---|
3 | > ES2015 [`Object.assign()`](http://www.2ality.com/2014/01/object-assign.html) [ponyfill](https://ponyfill.com)
|
---|
4 |
|
---|
5 |
|
---|
6 | ## Use the built-in
|
---|
7 |
|
---|
8 | Node.js 4 and up, as well as every evergreen browser (Chrome, Edge, Firefox, Opera, Safari),
|
---|
9 | support `Object.assign()` :tada:. If you target only those environments, then by all
|
---|
10 | means, use `Object.assign()` instead of this package.
|
---|
11 |
|
---|
12 |
|
---|
13 | ## Install
|
---|
14 |
|
---|
15 | ```
|
---|
16 | $ npm install --save object-assign
|
---|
17 | ```
|
---|
18 |
|
---|
19 |
|
---|
20 | ## Usage
|
---|
21 |
|
---|
22 | ```js
|
---|
23 | const objectAssign = require('object-assign');
|
---|
24 |
|
---|
25 | objectAssign({foo: 0}, {bar: 1});
|
---|
26 | //=> {foo: 0, bar: 1}
|
---|
27 |
|
---|
28 | // multiple sources
|
---|
29 | objectAssign({foo: 0}, {bar: 1}, {baz: 2});
|
---|
30 | //=> {foo: 0, bar: 1, baz: 2}
|
---|
31 |
|
---|
32 | // overwrites equal keys
|
---|
33 | objectAssign({foo: 0}, {foo: 1}, {foo: 2});
|
---|
34 | //=> {foo: 2}
|
---|
35 |
|
---|
36 | // ignores null and undefined sources
|
---|
37 | objectAssign({foo: 0}, null, {bar: 1}, undefined);
|
---|
38 | //=> {foo: 0, bar: 1}
|
---|
39 | ```
|
---|
40 |
|
---|
41 |
|
---|
42 | ## API
|
---|
43 |
|
---|
44 | ### objectAssign(target, [source, ...])
|
---|
45 |
|
---|
46 | Assigns enumerable own properties of `source` objects to the `target` object and returns the `target` object. Additional `source` objects will overwrite previous ones.
|
---|
47 |
|
---|
48 |
|
---|
49 | ## Resources
|
---|
50 |
|
---|
51 | - [ES2015 spec - Object.assign](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign)
|
---|
52 |
|
---|
53 |
|
---|
54 | ## Related
|
---|
55 |
|
---|
56 | - [deep-assign](https://github.com/sindresorhus/deep-assign) - Recursive `Object.assign()`
|
---|
57 |
|
---|
58 |
|
---|
59 | ## License
|
---|
60 |
|
---|
61 | MIT © [Sindre Sorhus](https://sindresorhus.com)
|
---|