61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Arrow Functions | ||
|  | localeTitle: Funções de seta | ||
|  | --- | ||
|  | ## Funções de seta
 | ||
|  | 
 | ||
|  | Funções no ES6 mudaram um pouco. Quero dizer a sintaxe. | ||
|  | 
 | ||
|  | ```javascript | ||
|  | // Old Syntax  | ||
|  |  function oldOne() {  | ||
|  |  console.log("Hello World..!");  | ||
|  |  }  | ||
|  |   | ||
|  |  // New Syntax  | ||
|  |  var newOne = () => {  | ||
|  |  console.log("Hello World..!");  | ||
|  |  }  | ||
|  | ``` | ||
|  | 
 | ||
|  | A nova sintaxe pode ser um pouco confusa. Mas vou tentar explicar a sintaxe. Existem duas partes da sintaxe. | ||
|  | 
 | ||
|  | 1.  var newOne = () | ||
|  | 2.  \=> {} | ||
|  | 
 | ||
|  | A primeira parte é apenas declarar uma variável e atribuir a função (ie) () a ela. Apenas diz que a variável é na verdade uma função. | ||
|  | 
 | ||
|  | Então a segunda parte está declarando a parte do corpo da função. A parte da seta com as chaves indica a parte do corpo. | ||
|  | 
 | ||
|  | Outro exemplo com parâmetros: | ||
|  | 
 | ||
|  | ```javascript | ||
|  | let NewOneWithParameters = (a, b) => {  | ||
|  |  console.log(a+b); // 30  | ||
|  |  }  | ||
|  |  NewOneWithParameters(10, 20);  | ||
|  | ``` | ||
|  | 
 | ||
|  | Parênteses são opcionais quando há apenas um nome de parâmetro: | ||
|  | 
 | ||
|  | ```javascript | ||
|  | let newOneWithOneParam = a => {  | ||
|  |  console.log(a);  | ||
|  |  }  | ||
|  | ``` | ||
|  | 
 | ||
|  | Uma vantagem incrível da função de setas é que você não pode religar uma função de seta. Sempre será chamado com o contexto em que foi definido. Apenas use uma função normal. | ||
|  | 
 | ||
|  | ```javascript | ||
|  | // Old Syntax  | ||
|  |  axios.get(url).then(function(response) {  | ||
|  |   this.data = response.data;  | ||
|  |  }).bind(this);  | ||
|  |   | ||
|  |  // New Syntax  | ||
|  |  axios.get(url).then(response => {  | ||
|  |   this.data = response.data;  | ||
|  |  });  | ||
|  | ``` | ||
|  | 
 | ||
|  | Eu não acho que eu precise dar uma explicação para isso. É simples. |