Skip to content

Commit 02c8616

Browse files
committed
correction of defects
1 parent 454a180 commit 02c8616

9 files changed

Lines changed: 18 additions & 11 deletions

File tree

1-js/06-advanced-functions/10-bind/2-write-to-object-after-bind/solution.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
Ответ: `null`.
22

3+
34
```js run
45
function f() {
56
alert( this ); // null

1-js/06-advanced-functions/10-bind/2-write-to-object-after-bind/task.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
важность: 5
1+
importance: 5
22

33
---
44

@@ -17,3 +17,4 @@ let user = {
1717

1818
user.g();
1919
```
20+

1-js/06-advanced-functions/10-bind/3-second-bind/solution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ function f() {
55
alert(this.name);
66
}
77

8-
f = f.bind( { name: "Вася" } ).bind( { name: "Петя" } );
8+
f = f.bind( {name: "Вася"} ).bind( {name: "Петя"} );
99

1010
f(); // Вася
1111
```
1212

13-
Экзотический объект [bound function](https://tc39.github.io/ecma262/#sec-bound-function-exotic-objects), возвращаемый при первом вызове `f.bind (...)`, запоминает контекст (и аргументы, если они были переданы) только во время создания.
13+
Экзотический объект [bound function](https://tc39.github.io/ecma262/#sec-bound-function-exotic-objects), возвращаемый при первом вызове `f.bind(...)`, запоминает контекст (и аргументы, если они были переданы) только во время создания.
1414

1515
Следующий вызов `bind` будет устанавливать контекст уже для этого объекта. Это ни на что не повлияет.
1616

1-js/06-advanced-functions/10-bind/3-second-bind/task.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
важность: 5
1+
importance: 5
22

33
---
44

@@ -13,7 +13,8 @@ function f() {
1313
alert(this.name);
1414
}
1515

16-
f = f.bind( { name: "Вася" } ).bind( { name: "Петя" } );
16+
f = f.bind( {name: "Вася"} ).bind( {name: "Петя" } );
1717

1818
f();
1919
```
20+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
Ответ: `undefined`.
22

33
Результатом работы `bind` является другой объект. У него уже нет свойства `test`.
4+

1-js/06-advanced-functions/10-bind/4-function-property-after-bind/task.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
важность: 5
1+
importance: 5
22

33
---
44

55
# Свойство функции после bind
66

7-
В свойство функции записано значение. Изменится ли оно после применения bind? Обоснуйте ответ.
7+
В свойство функции записано значение. Изменится ли оно после применения `bind`? Обоснуйте ответ.
88

99
```js run
1010
function sayHi() {
@@ -20,3 +20,4 @@ let bound = sayHi.bind({
2020
alert( bound.test ); // что выведет? почему?
2121
*/!*
2222
```
23+

1-js/06-advanced-functions/10-bind/5-question-use-bind/solution.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@ askPassword(user.loginOk.bind(user), user.loginFail.bind(user));
3333
Теперь всё работает корректно.
3434

3535
Альтернативное решение - сделать функции-обёртки над `user.loginOk/loginFail`:
36-
3736
```js
3837
//...
3938
askPassword(() => user.loginOk(), () => user.loginFail());
4039
```
4140

4241
Обычно это также работает, но может не сработать в более сложных ситуациях, когда `user` может быть перезаписан между моментами запроса и выполнения `() => user.loginOk()`.
42+
43+

1-js/06-advanced-functions/10-bind/5-question-use-bind/task.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
важность: 5
1+
importance: 5
22

33
---
44

@@ -34,3 +34,5 @@ let user = {
3434
askPassword(user.loginOk, user.loginFail);
3535
*/!*
3636
```
37+
38+

1-js/06-advanced-functions/10-bind/article.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ libs:
99

1010
Внезапно, `this` просто перестает работать правильно. Такая ситуация типична для новичков, но также случается и с опытными разработчиками.
1111

12-
## Потеря `this`
12+
## Потеря "this"
1313

1414
Мы уже знаем, что в JavaScript легко потерять `this`: когда метод передается где-то отдельно от объекта - `this` теряется.
1515

@@ -94,7 +94,6 @@ user = { sayHi() { alert("Другой пользователь в 'setTimeout'!
9494

9595
В современном JavaScript у функций есть встроенный метод [bind](mdn:js/Function/bind), который позволяет исправить `this`.
9696

97-
<!-- The basic syntax is: -->
9897
Базовый синтаксис `bind`:
9998

10099
```js

0 commit comments

Comments
 (0)