<commit_before>---
title: Arrow Functions
localeTitle: 箭头功能
---
## 箭头功能

ES6中的功能发生了一些变化。我的意思是语法。

```javascript
// Old Syntax 
 function oldOne() { 
 console.log("Hello World..!"); 
 } 
 
 // New Syntax 
 var newOne = () => { 
 console.log("Hello World..!"); 
 } 
```

新语法可能会让人感到困惑。但我会尝试解释语法。 语法分为两部分。

1.  var newOne =（）
2.  \=> {}

第一部分是声明一个变量并将函数（即）（）分配给它。它只是说变量实际上是一个函数。

然后第二部分声明函数的正文部分。带有花括号的箭头部分定义了身体部位。

参数的另一个例子：

```javascript
let NewOneWithParameters = (a, b) => { 
 console.log(a+b); // 30 
 } 
 NewOneWithParameters(10, 20); 
```

当只有一个参数名称时，括号是可选的：

```javascript
let newOneWithOneParam = a => { 
 console.log(a); 
 } 
```

箭头功能的一个令人难以置信的优点是你不能重新绑定箭头功能。它将始终使用定义它的上下文进行调用。只需使用正常功能。

```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; 
 }); 
```

我认为我不需要对此作出解释。这很简单。<commit_msg>fix some syntax error (#34137)<commit_after>---
title: Arrow Functions
localeTitle: 箭头函数
---
## 箭头函数

ES6中的函数新增了一种语法（箭头函数）。

```javascript
// 老语法
 function oldOne() { 
 console.log("Hello World..!"); 
 } 
 
 // 新语法
 var newOne = () => { 
 console.log("Hello World..!"); 
 } 
```

新语法可能会让人感到困惑。但我会尝试解释它。 语法分为两部分。

1.  var newOne =（）
2.  \=> {}

第一部分是声明一个变量并将函数（）分配给它。它只是说变量实际上是一个函数。

然后第二部分声明函数的正文部分。带有花括号的箭头部分定义了函数主体。

参数传递：

```javascript
let NewOneWithParameters = (a, b) => { 
 console.log(a+b); // 30 
 } 
 NewOneWithParameters(10, 20); 
```

当只有一个参数名称时，括号是可选的：

```javascript
let newOneWithOneParam = a => { 
 console.log(a); 
 } 
```

箭头函数最大的特点在于不能重复绑定，函数的上下文（`this`）指向的是定义函数时函数所在的上下文，类似于继承`this`

```javascript
// 老语法
 axios.get(url).then(function(response) { 
  this.data = response.data; 
 }).bind(this); 
 
 // 新语法
 axios.get(url).then(response => { 
  this.data = response.data; 
 }); 
```

该特性可以很好的解决开发过程中this指向导致的问题。
{'fraction_non_alphanumeric': 0.18074866310160428, 'fraction_numerical': 0.01229946524064171, 'mean_word_length': 3.910761154855643, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4038872', 'n_tokens_mistral': 1088, 'n_tokens_neox': 1094, 'n_words': 117}