Я знаю, что for...in
даст вам все перечисляемые свойства объекта, включая унаследованные свойства. И я знаю, что Object.getOwnPropertyNames()
даст вам все перечисляемые и не перечисляемые свойства, но не наследуемые. Есть ли встроенный метод для получения всех свойств, оба унаследованных и не перечислимы? Или для этого требуется пользовательская функция, которая рекурсивно пересекает цепочку прототипов?