diff --git a/1-js/06-advanced-functions/09-call-apply-decorators/article.md b/1-js/06-advanced-functions/09-call-apply-decorators/article.md index 6fc33f17f8..cd693d6516 100644 --- a/1-js/06-advanced-functions/09-call-apply-decorators/article.md +++ b/1-js/06-advanced-functions/09-call-apply-decorators/article.md @@ -49,7 +49,7 @@ alert( "Again: " + slow(2) ); // возвращаем из кеша Отделяя кеширующий код от основного кода, мы также сохраняем чистоту и простоту последнего. -Результат вызова `cachingDecorator(func)` является "обёрткой", т.е. `function(x)` "оборачивает" вызов `func(x)` в кеширующую логику: +Результатом вызова `cachingDecorator(func)` является "обёртка": `function(x)`, которая "оборачивает" вызов `func(x)` в кеширующую логику: ![](decorator-makecaching-wrapper.svg) @@ -209,7 +209,7 @@ alert( worker.slow(2) ); // работает, не вызывая первона Чтобы всё было понятно, давайте посмотрим глубже, как передаётся `this`: -1. После *декорации* `worker.slow` становится обёрткой `function (x) { ... }`. +1. После декорации, `worker.slow` становится обёрткой `function (x) { ... }`. 2. Так что при выполнении `worker.slow(2)` обёртка получает `2` в качестве аргумента и `this=worker` (так как это объект перед точкой). 3. Внутри обёртки, если результат ещё не кеширован, `func.call(this, x)` передаёт текущий `this` (`=worker`) и текущий аргумент (`=2`) в оригинальную функцию.