Fixed translation and typos (#25300)

This commit is contained in:
Nikita Rudenko
2018-12-12 19:37:30 +02:00
committed by Gregory Gubarev
parent a146cb266a
commit b15a2c3471

View File

@ -1,59 +1,59 @@
--- ---
title: Arrow Functions title: Arrow Functions
localeTitle: Функции стрелки localeTitle: Стрелочные функции
--- ---
Функции Arrow - новый синтаксис ES6 для написания выражений функций JavaScript. Более короткий синтаксис экономит время, а также упрощает область действия. Стрелочные функции - новый синтаксис ES6 для написания функций JavaScript. Более короткий синтаксис экономит время, а также упрощает область видимости функции.
## Что такое функции стрелок? ## Что такое стрелочные функции?
Выражение функции стрелки является более кратким синтаксисом для написания выражений функции с использованием токена «стрелка жира» ( `=>` ). Стрелочные функции более краткий синтаксис для написания функций с использованием стрелки ( `=>` ).
### Основной синтаксис ### Основной синтаксис
Ниже приведен базовый пример функции стрелки: Ниже приведен базовый пример стрелочной функции:
```javascript ```javascript
// ES5 syntax // синтаксис в ES5
var multiply = function(x, y) { var multiply = function(x, y) {
return x * y; return x * y;
}; };
// ES6 arrow function // стрелочные функции в ES6
var multiply = (x, y) => { return x * y; }; var multiply = (x, y) => { return x * y; };
// Or even simpler // или еще проще
var multiply = (x, y) => x * y; var multiply = (x, y) => x * y;
``` ```
Вам больше не нужны `function` и `return` ключевые слова, или даже фигурные скобки. Вам больше не нужны ключевые слова `function`, `return` и даже фигурные скобки.
### Упрощение `this` ### Упрощение `this`
Перед функциями стрелок, новые функции , определенные их собственное `this` значение. Чтобы использовать `this` в традиционном выражении функции, мы должны написать обходное решение так: До появления стрелочных функций, функции имели собственное значение `this`. Чтобы использовать `this` традиционным способом, мы вынуждены прибегнуть к данному приёму:
```javascript ```javascript
// ES5 syntax // синтаксис ES5
function Person() { function Person() {
// we assign `this` to `self` so we can use it later // мы привязываем `this` к переменной `self`, которую можно использовать позже
var self = this; var self = this;
self.age = 0; self.age = 0;
setInterval(function growUp() { setInterval(function growUp() {
// `self` refers to the expected object // `self` ссылается на нужный нам объект
self.age++; self.age++;
}, 1000); }, 1000);
} }
``` ```
Функция стрелка не определяет его владелец `this` значения, то он наследует `this` от функции ограждающей: Стрелочная функция не определяет своего собственного значения `this`, а наследует `this` от родительской функции:
```javascript ```javascript
// ES6 syntax // синтаксис ES6
function Person(){ function Person(){
this.age = 0; this.age = 0;
setInterval(() => { setInterval(() => {
// `this` now refers to the Person object, brilliant! // `this` теперь ссылается на объект Person, отлично!
this.age++; this.age++;
}, 1000); }, 1000);
} }
@ -61,6 +61,6 @@ localeTitle: Функции стрелки
var p = new Person(); var p = new Person();
``` ```
#### Дальнейшее чтение #### Дополнительные материалы
[Ссылка MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) [Ссылка на MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)