Skip to content

Commit 2471698

Browse files
committed
classes-emit.md misprint
1 parent df71034 commit 2471698

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

docs/classes-emit.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ console.log(Foo.prototype); // {} т.е. prototype существует и не
9090
console.log(Foo.prototype.constructor === Foo); // Имеет член с именем `constructor`, ссылающийся на саму функцию
9191
```
9292

93-
Теперь посмотрим на *влияние `new` на `this` внутри вызываемой функции*. По сути `this` внутри вызываемой функции указывает на созданный объект, который будет возвращен функцией. Это легко увидеть, если изменить значение какого-нибудь свойства на `this` внутри функции:
93+
Теперь посмотрим как *влияет `new` на `this` внутри вызываемой функции*. По сути `this` внутри вызываемой функции указывает на созданный объект, который будет возвращен функцией. Это легко увидеть, если изменить значение какого-нибудь свойства на `this` внутри функции:
9494

9595
```ts
9696
function Foo() {
@@ -122,11 +122,11 @@ console.log(foo.__proto__ === Foo.prototype); // True!
122122

123123
Обратное чтение этой функции `d.prototype = new __()` в 3 строке фактически означает, что `d.prototype = {__proto__ : __.prototype}` (из-за влияния `new` на `prototype` и `__proto__`), комбинируя его с предыдущей строкой (строка 2 `__.prototype = b.prototype;`), вы получаете `d.prototype = {__proto__ : b.prototype}`.
124124

125-
Но подождите, мы же хотели `d.prototype.__proto__`, т.е. просто изменить proto и сохранить старый `d.prototype.constructor`. Вот где значение первой строки (`function __() { this.constructor = d; }`) вступает в силу. Здесь мы будем фактически иметь `d.prototype = {__proto__ : __.prototype, constructor : d}` (из-за влияния `new` на `this` внутри вызываемой функции). Итак, поскольку мы восстонавливаем `d.prototype.constructor`, единственное, что мы действительно мутировали это `__proto__`, следовательно `d.prototype.__proto__ = b.prototype`.
125+
Но подождите, мы же хотели `d.prototype.__proto__`, т.е. просто изменить proto и сохранить старый `d.prototype.constructor`. Вот где значение первой строки (`function __() { this.constructor = d; }`) вступает в силу. Здесь мы будем фактически иметь `d.prototype = {__proto__ : __.prototype, constructor : d}` (из-за влияния `new` на `this` внутри вызываемой функции). Итак, поскольку мы восстанавливаем `d.prototype.constructor`, единственное, что мы действительно мутировали это `__proto__`, следовательно `d.prototype.__proto__ = b.prototype`.
126126

127127
#### `d.prototype.__proto__ = b.prototype` значение
128128

129-
Значение заключается в том, что это позволяет добавлять члены-функции к дочернему классу и наследовать другие от базового класса. Это показано на следующем примере:
129+
Это значение и есть то, что позволяет добавлять члены-функции к дочернему классу и наследовать другие от базового класса. Это показано на следующем примере:
130130

131131
```ts
132132
function Animal() { }

0 commit comments

Comments
 (0)