Files
freeCodeCamp/guide/russian/javascript/arrow-functions/index.md
2018-12-12 21:37:30 +04:00

67 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Arrow Functions
localeTitle: Стрелочные функции
---
Стрелочные функции - новый синтаксис ES6 для написания функций JavaScript. Более короткий синтаксис экономит время, а также упрощает область видимости функции.
## Что такое стрелочные функции?
Стрелочные функции — более краткий синтаксис для написания функций с использованием стрелки ( `=>` ).
### Основной синтаксис
Ниже приведен базовый пример стрелочной функции:
```javascript
// синтаксис в ES5
var multiply = function(x, y) {
return x * y;
};
// стрелочные функции в ES6
var multiply = (x, y) => { return x * y; };
// или еще проще
var multiply = (x, y) => x * y;
```
Вам больше не нужны ключевые слова `function`, `return` и даже фигурные скобки.
### Упрощение `this`
До появления стрелочных функций, функции имели собственное значение `this`. Чтобы использовать `this` традиционным способом, мы вынуждены прибегнуть к данному приёму:
```javascript
// синтаксис ES5
function Person() {
// мы привязываем `this` к переменной `self`, которую можно использовать позже
var self = this;
self.age = 0;
setInterval(function growUp() {
// `self` ссылается на нужный нам объект
self.age++;
}, 1000);
}
```
Стрелочная функция не определяет своего собственного значения `this`, а наследует `this` от родительской функции:
```javascript
// синтаксис ES6
function Person(){
this.age = 0;
setInterval(() => {
// `this` теперь ссылается на объект Person, отлично!
this.age++;
}, 1000);
}
var p = new Person();
```
#### Дополнительные материалы
[Ссылка на MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)