mirror of
				https://kkgithub.com/actions/setup-python.git
				synced 2025-11-04 12:44:05 +08:00 
			
		
		
		
	
		
			
	
	
		
			82 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								[![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
							 | 
						||
| 
								 | 
							
								
							 |