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  --> |