Оператор in в JavaScript возвращает true для унаследованных свойств, потому что проверяет, существует ли указанное свойство в объекте или в его цепочке прототипов. 13
В JavaScript объекты имеют специальное скрытое свойство [[Prototype]], которое либо равно null, либо ссылается на другой объект — прототип. 4 Когда нужно прочитать свойство объекта, а оно отсутствует, JavaScript автоматически берёт его из прототипа. 4