Skip to content

Commit a95d4f6

Browse files
committed
Правки lex111
1 parent 4a65cf8 commit a95d4f6

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

1-js/09-classes/07-mixins/article.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# Примесь
1+
# Примеси
22

33
В JavaScript мы можем использовать наследование только от одного объекта. Объект имеет единственный `[[Prototype]]`. И класс может расширить только один другой класс.
44

55
Иногда это может ограничивать нас. Например, у нас есть класс `StreetSweeper` и класс `Bicycle`, и хотим создать `StreetSweepingBicycle`.
66

77
Или, поговорим о программировании, у нас есть класс `Renderer`, который реализует шаблон и класс `EventEmitter` реализующий событие. И мы хотим объединить их функционалы вместе в классе `Page`. Создадим страницу, которая будет использовать шаблон, и использовать событие.
88

9-
Для таких случаев существует "примесь".
9+
Для таких случаев существует "примеси".
1010

11-
Как говориться в Википедии [примесь](https://ru.wikipedia.org/wiki/Mixin) является классом, который имеет методы и мы можем их использовать в других классов, без необходимости быть родителем этих классов.
11+
Как говориться в Википедии [примесь](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%81%D1%8C_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)) является классом, который имеет методы и мы можем их использовать в других классов, без необходимости быть родителем этих классов.
1212

1313
Другими словами *примесь* определяет методы, которые реализуют определенное поведение. Мы не используем его в одиночку, а используем его, чтобы добавить другим классам больше функционала.
1414

@@ -59,7 +59,7 @@ Object.assign(User.prototype, sayHiMixin);
5959

6060
Примеси могут использовать наследование между собой.
6161

62-
В примере ниже `sayHiMixin` наследуется от `sayMixin` :
62+
В примере ниже `sayHiMixin` наследуется от `sayMixin`:
6363

6464
```js run
6565
let sayMixin = {
@@ -111,7 +111,7 @@ new User("Dude").sayHi(); // Hello Dude!
111111

112112
Событие может иметь имя, необязательно, и связь между некоторыми дополнительными данными.
113113

114-
Например объект `user` может генерировать события `"login"`, когда посетитель входит. А другой объект `calendar` может захотеть получать его события, чтобы загрузить календарь для вошедшего человека.
114+
Например, объект `user` может генерировать события `"login"`, когда посетитель входит. А другой объект `calendar` может захотеть получать его события, чтобы загрузить календарь для вошедшего человека.
115115

116116
Или `menu` может генерировать событие `"select"`, когда меню элемент выбран, или другие объекты могут захотеть получить эту информацию и отреагировать на это событие.
117117

@@ -120,9 +120,9 @@ new User("Dude").sayHi(); // Hello Dude!
120120
```js run
121121
let eventMixin = {
122122
/**
123-
* Опишем события, используя:
124-
* menu.on('select', function(item) { ... }
125-
*/
123+
* Опишем события, используя:
124+
* menu.on('select', function(item) { ... }
125+
*/
126126
on(eventName, handler) {
127127
if (!this._eventHandlers) this._eventHandlers = {};
128128
if (!this._eventHandlers[eventName]) {
@@ -132,13 +132,13 @@ let eventMixin = {
132132
},
133133

134134
/**
135-
* Закроем событие, используя:
136-
* menu.off('select', handler)
137-
*/
135+
* Закроем событие, используя:
136+
* menu.off('select', handler)
137+
*/
138138
off(eventName, handler) {
139139
let handlers = this._eventHandlers && this._eventHandlers[eventName];
140140
if (!handlers) return;
141-
for (let i = 0; i< handlers.length; i++) {
141+
for (let i = 0; i < handlers.length; i++) {
142142
if (handlers[i] === handler) {
143143
handlers.splice(i--, 1);
144144
}
@@ -162,9 +162,9 @@ let eventMixin = {
162162

163163
И так у нас 3 метода:
164164

165-
1. `.on(eventName, handler)` -- назначили функцию `handler`, чтобы запустить событие с этим именем. И храним обработчиков в `_eventHandlers` свойстве.
166-
167-
2. `.off(eventName, handler)` -- удаляем функцию из списка обработчиков
165+
1. `.on(eventName, handler)` -- назначили функцию `handler`, чтобы запустить событие с этим именем. И храним обработчиков в свойстве `_eventHandlers`.
166+
167+
2. `.off(eventName, handler)` -- удаляем функцию из списка обработчиков.
168168

169169
3. `.trigger(eventName, ...args)` -- генерируем событие: все назначенные обработчики вызываются и в `args` передаются в качестве аргументов.
170170

@@ -184,7 +184,7 @@ let menu = new Menu();
184184

185185
// Вызовем выбранный обработчик:
186186
*!*
187-
menu.on("select", value => alert( Value selected: ${value} ));
187+
menu.on("select", value => alert(`Value selected: ${value}`));
188188
*/!*
189189

190190
// Запустили событие => покажет выбранное значение: 123

0 commit comments

Comments
 (0)