Skip to content

Commit fe5d346

Browse files
authored
Apply suggestions from code review
1 parent fc59d44 commit fe5d346

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

1-js/06-advanced-functions/09-call-apply-decorators/01-spy-decorator/_js.view/solution.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
function spy(func) {
2+
23
function wrapper(...args) {
34
// використовуємо ...args замість arguments щоб можна було зберігати "справжній" масив в wrapper.calls
45
wrapper.calls.push(args);

1-js/06-advanced-functions/09-call-apply-decorators/article.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ alert( worker.slow(2) ); // працює, не викликаючи оригін
205205

206206
Щоб все було зрозуміло, давайте подивимося більш глибоко, як `this` передається:
207207

208-
1. Після декорування в значення `worker.slow` було присвоєно функцію декоратор `function (x) { ... }`.
208+
1. Після декорування у властивість `worker.slow` було присвоєно функцію декоратор `function (x) { ... }`.
209209
2. Отже, коли `worker.slow(2)` виконується, обгортка отримує `2` в якості аргумента і `this=worker` (це об’єкт перед крапкою).
210210
3. Всередині обгортки, якщо результат ще не кешований, `func.call(this, x)` передає поточний `this` (`=worker`) та поточний аргумент (`=2`) до оригінального методу.
211211

@@ -338,7 +338,7 @@ function hash(args) {
338338

339339
Зараз вона працює лише для двох аргументів. Було б краще, якби вона могла зклеїти будь-яку кількість `args`.
340340

341-
Перше, що приходить в голову - це використати метод [arr.join](mdn:js/Array/join):
341+
Перше, що приходить в голову -- це використати метод [arr.join](mdn:js/Array/join):
342342

343343
```js
344344
function hash(args) {
@@ -410,8 +410,8 @@ hash(1, 2);
410410

411411
Для реалізації `cachingDecorator`, ми вивчали методи:
412412

413-
- [func.call(context, arg1, arg2...)](mdn:js/Function/call) -- викликає `func` з вручним указанням контексту та з списком аргументів.
414-
- [func.apply(context, args)](mdn:js/Function/apply) -- викликає `func` з вручним указанням контексту та псевдо-масив (або й звичайний масив) `args` як список аргументів.
413+
- [func.call(context, arg1, arg2...)](mdn:js/Function/call) -- викликає `func` з заданим контекстом та з аргументами.
414+
- [func.apply(context, args)](mdn:js/Function/apply) -- викликає `func` передаючи `context` як `this` та псевдо-масив (або й звичайний масив) `args` як список аргументів.
415415

416416
Зазвичай *переадресація викликів* виконується завдяки `apply`:
417417

0 commit comments

Comments
 (0)