|
11 | 11 | obj instanceof Class |
12 | 12 | ``` |
13 | 13 |
|
14 | | -Оператор вернёт `true`, если `obj` принадлежит классу `Class` (или класс наследует от него). |
| 14 | +Оператор вернёт `true`, если `obj` принадлежит классу `Class` (или класс наследуется от него). |
15 | 15 |
|
16 | 16 | Например: |
17 | 17 |
|
@@ -44,7 +44,7 @@ alert( arr instanceof Array ); // true |
44 | 44 | alert( arr instanceof Object ); // true |
45 | 45 | ``` |
46 | 46 |
|
47 | | -Пожалуйста, обратите внимание, что `arr` также принадлежит классу `Object`. Это потому, что `Array` наследуется от `Object`. |
| 47 | +Пожалуйста, обратите внимание, что `arr` также принадлежит классу `Object`, потому что `Array` наследуется от `Object`. |
48 | 48 |
|
49 | 49 | Оператор `instanceof` просматривает цепочку прототипов для проверки, и это также свободно настраивается с помощью статичного метода `Symbol.hasInstance`. |
50 | 50 |
|
@@ -94,7 +94,7 @@ alert( arr instanceof Object ); // true |
94 | 94 |
|
95 | 95 |  |
96 | 96 |
|
97 | | -Кстати, есть метод [objA.isPrototypeOf(objB)], которые возвращает `true`, если объект `objA` есть где-то в прототипной цепочки объекта `objB`. Так что `obj instanceof Class` можно перефразировать как `Class.prototype.isPrototypeOf(obj)`. |
| 97 | +Кстати, есть метод [objA.isPrototypeOf(objB)], которые возвращает `true`, если объект `objA` есть где-то в прототипной цепочке объекта `objB`. Так что `obj instanceof Class` можно перефразировать как `Class.prototype.isPrototypeOf(obj)`. |
98 | 98 |
|
99 | 99 | Забавно, но сам конструктор `Class` не участвует в процессе проверки! Важна только цепочка прототипов `Class.prototype`. |
100 | 100 |
|
@@ -206,6 +206,6 @@ alert( {}.toString.call(new XMLHttpRequest()) ); // [object XMLHttpRequest] |
206 | 206 | | `{}.toString` | примитивы, встроенные объекты, объекты с `Symbol.toStringTag` | строка | |
207 | 207 | | `instanceof` | объекты | true/false | |
208 | 208 |
|
209 | | -Как мы можем видеть, технически `{}.toString` "более продвинут", чем `typeof`. |
| 209 | +Как мы можем видеть, технически `{}.toString` "более продвинут", чем `typeof`. |
210 | 210 |
|
211 | 211 | И оператор `instanceof` действительно сияет, когда мы работаем с иерархией классов и хотим делать проверки с учётом наследования. |
0 commit comments