Как вы перебираете все методы в псевдоклассе JavaScript, независимо от того, помечены ли они перечислимыми или нет?
Я пытаюсь перебрать все методы в псевдоклассе JavaScript и легко могу определить, является ли что-то методом или нет с (obj.member instanceof Function), однако я пытаюсь включить методы, которые могут быть скрыты от for...in цикл через defineProperty с перечисляемым флагом, установленным в false - как мне перебрать все члены псевдокласса, независимо от перечислимого значения?
1 ответ
Решение
Вы всегда можете использовать Object.getOwnPropertyNames
, который будет включать в себя и не перечисляемые свойства. Однако это не будет включать свойства из прототипов, поэтому, если вы спрашиваете об "экземплярах псевдокласса", вам может понадобиться зациклить цепочку прототипов с помощью Object.getPrototypeOf
,