update docs, add object
This commit is contained in:
@@ -2,10 +2,10 @@
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Введение
|
||||
# Общая информация
|
||||
|
||||
#### Function Declaration: функция в основном потоке кода
|
||||
```
|
||||
```js
|
||||
function sum(a, b) {
|
||||
let result = a + b;
|
||||
|
||||
@@ -14,7 +14,7 @@ function sum(a, b) {
|
||||
```
|
||||
|
||||
#### Function Expression: функция как часть выражения
|
||||
```
|
||||
```js
|
||||
let sum = function(a, b) {
|
||||
let result = a + b;
|
||||
|
||||
@@ -23,7 +23,7 @@ let sum = function(a, b) {
|
||||
```
|
||||
|
||||
#### Стрелочные функции:
|
||||
```
|
||||
```js
|
||||
// выражение в правой части
|
||||
let sum = (a, b) => a + b;
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ sidebar_position: 2
|
||||
# Function Declaration
|
||||
|
||||
Function Declaration (Объявление Функции):
|
||||
```
|
||||
```js
|
||||
function имя(параметры, через, запятую) {
|
||||
...тело, код функции...
|
||||
//...тело, код функции...
|
||||
}
|
||||
```
|
||||
Переменные, объявленные внутри функции, видны только внутри этой функции.
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 3
|
||||
|
||||
**Function Declaration (Объявление Функции):**
|
||||
|
||||
```
|
||||
```js
|
||||
function sayHi() {
|
||||
alert( "Привет" );
|
||||
}
|
||||
@@ -14,7 +14,7 @@ function sayHi() {
|
||||
|
||||
**Function Expression (Функциональное Выражение).**
|
||||
|
||||
```
|
||||
```js
|
||||
let sayHi = function() {
|
||||
alert( "Привет" );
|
||||
};
|
||||
@@ -25,7 +25,7 @@ let sayHi = function() {
|
||||
Давайте повторим: независимо от того, как создаётся функция – она является значением. В обоих приведённых выше примерах
|
||||
функция хранится в переменной sayHi.
|
||||
|
||||
```
|
||||
```js
|
||||
function sayHi() {
|
||||
alert( "Привет" );
|
||||
}
|
||||
@@ -48,7 +48,7 @@ alert( sayHi ); // выведет код функции
|
||||
|
||||
***Function Declaration может быть вызвана раньше, чем она объявлена.***
|
||||
|
||||
```
|
||||
```js
|
||||
sayHi("Вася"); // Привет, Вася
|
||||
|
||||
function sayHi(name) {
|
||||
@@ -57,7 +57,7 @@ function sayHi(name) {
|
||||
```
|
||||
|
||||
***Function Expression создаётся, когда выполнение доходит до него, и затем уже может использоваться.***
|
||||
```
|
||||
```js
|
||||
sayHi("Вася"); // ошибка!
|
||||
|
||||
let sayHi = function(name) { // (*) магии больше нет
|
||||
|
||||
@@ -6,7 +6,9 @@ sidebar_position: 4
|
||||
|
||||
Существует ещё один очень простой и лаконичный синтаксис для создания функций, который часто лучше, чем Function Expression.
|
||||
|
||||
``` let sum = (a, b) => a + b;```
|
||||
```js
|
||||
let sum = (a, b) => a + b;
|
||||
```
|
||||
|
||||
## У стрелочных функций нет «this»
|
||||
Если происходит обращение к this, его значение берётся снаружи.
|
||||
@@ -23,7 +25,7 @@ sidebar_position: 4
|
||||
## Стрелочные функции не имеют «arguments»
|
||||
|
||||
Это отлично подходит для декораторов, когда нам нужно пробросить вызов с текущими this и arguments.
|
||||
```
|
||||
```js
|
||||
function defer(f, ms) {
|
||||
return function() {
|
||||
setTimeout(() => f.apply(this, arguments), ms)
|
||||
@@ -40,7 +42,7 @@ sayHiDeferred("John"); // выводит "Hello, John" через 2 секунд
|
||||
|
||||
То же самое без стрелочной функции выглядело бы так:
|
||||
|
||||
```
|
||||
```js
|
||||
function defer(f, ms) {
|
||||
return function(...args) {
|
||||
let ctx = this;
|
||||
|
||||
Reference in New Issue
Block a user