43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Use the Rest Operator with Function Parameters
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Use the Rest Operator with Function Parameters
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								###  Rest parameter explanation
							 | 
						||
| 
								 | 
							
								[Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters "Mozilla Developer Network")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Spread operator compared to rest parameter
							 | 
						||
| 
								 | 
							
								[Stack overflow](https://stackoverflow.com/questions/33898512/spread-operator-vs-rest-parameter-in-es2015-es6 "Stack Overflow") 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Video explaining spread and rest
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<a href="http://www.youtube.com/watch?feature=player_embedded&v=iLx4ma8ZqvQ
							 | 
						||
| 
								 | 
							
								" target="_blank"><img src="http://img.youtube.com/vi/iLx4ma8ZqvQ/0.jpg" 
							 | 
						||
| 
								 | 
							
								alt="Image of youtube video link spread and rest operator " width="240" height="180" border="10" /></a>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Example
							 | 
						||
| 
								 | 
							
								This code
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								const product = (function() {
							 | 
						||
| 
								 | 
							
									"use strict";
							 | 
						||
| 
								 | 
							
									return function product(n1, n2, n3) {
							 | 
						||
| 
								 | 
							
										const args = [n1, n2, n3];
							 | 
						||
| 
								 | 
							
										return args.reduce((a, b) => a * b, 1);
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
								})();
							 | 
						||
| 
								 | 
							
								console.log(product(2, 4, 6));//48
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Can be written as such
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								const product = (function() {
							 | 
						||
| 
								 | 
							
									"use strict";
							 | 
						||
| 
								 | 
							
									return function product(...n) {		
							 | 
						||
| 
								 | 
							
										return n.reduce((a, b) => a * b, 1);
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
								})();
							 | 
						||
| 
								 | 
							
								console.log(product(2, 4, 6));//48
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds  -->
							 |