Показать сообщение отдельно
  #5 (permalink)  
Старый 29.08.2018, 13:13
Новичок на форуме
Отправить личное сообщение для Leonid_ts Посмотреть профиль Найти все сообщения от Leonid_ts
 
Регистрация: 27.08.2018
Сообщений: 6

Сообщение от Aetae Посмотреть сообщение
Если утрировать instanceof просто проходит по цепочке прототипов левого аргумента и проверяет на строгое равенство(===) с прототипом правого аргумента.
Спасибо, теперь понятно. Но остался вопрос. Почему хром в свойстве __proto__ в цепочке прототипов объекта с везде пишет A, а не B, затем A? Т.е. почему так

C {c: "c"}
....c: "c"
....__proto__: A
........b: "b"
........__proto__: A
............a: "a"
............__proto__:
................constructor: f A()
................__proto__: Object

а не так
C {c: "c"}
....c: "c"
....__proto__: B
........b: "b"
........__proto__: A
............a: "a"
............__proto__:
................constructor: f A()
................__proto__: Object

Ведь объекту С присвоен прототипом объект b, и только объекту B присвоен прототипом объект а.
Ответить с цитированием