61 lines
2.1 KiB
Markdown
61 lines
2.1 KiB
Markdown
![]() |
---
|
|||
|
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;
|
|||
|
});
|
|||
|
```
|
|||
|
|
|||
|
Я не думаю, что мне нужно объяснить это. Это просто.
|