You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Щоб все було зрозуміло, давайте подивимося більш глибоко, як `this` передається:
207
207
208
-
1. Після декорування в значення`worker.slow` було присвоєно функцію декоратор `function (x) { ... }`.
208
+
1. Після декорування у властивість`worker.slow` було присвоєно функцію декоратор `function (x) { ... }`.
209
209
2. Отже, коли `worker.slow(2)` виконується, обгортка отримує `2` в якості аргумента і `this=worker` (це об’єкт перед крапкою).
210
210
3. Всередині обгортки, якщо результат ще не кешований, `func.call(this, x)` передає поточний `this` (`=worker`) та поточний аргумент (`=2`) до оригінального методу.
211
211
@@ -338,7 +338,7 @@ function hash(args) {
338
338
339
339
Зараз вона працює лише для двох аргументів. Було б краще, якби вона могла зклеїти будь-яку кількість `args`.
340
340
341
-
Перше, що приходить в голову - це використати метод [arr.join](mdn:js/Array/join):
341
+
Перше, що приходить в голову -- це використати метод [arr.join](mdn:js/Array/join):
342
342
343
343
```js
344
344
functionhash(args) {
@@ -410,8 +410,8 @@ hash(1, 2);
410
410
411
411
Для реалізації `cachingDecorator`, ми вивчали методи:
412
412
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` як список аргументів.
415
415
416
416
Зазвичай *переадресація викликів* виконується завдяки `apply`:
0 commit comments