Я пытаюсь перебрать все методы в псевдослове JavaScript и легко определить, является ли что-то методом или нет (obj.member instanceof Function), однако я пытаюсь включить методы, которые могут быть скрыты от a для ... в цикле через defineProperty с перечислимым флагом, установленным в false - как я могу повторять все члены псевдокласса, независимо от перечислимого значения?Как вы перебираете все методы в псевдоклассе JavaScript, независимо от того, отмечены ли они перечислимыми или нет?
6
A
ответ
7
Вы всегда можете использовать Object.getOwnPropertyNames
, который будет включать в себя неперечислимые свойства. Однако это не будет включать свойства прототипов, поэтому, если вы спрашиваете о «псевдоклассах», вам может понадобиться loop the prototype chain с Object.getPrototypeOf
.
Спасибо, немного кармы. – CoryG
Исправление, через 8 минут у вас может быть какая-то карма - проклятый сайт, думаю, я бот или что-то в этом роде. – CoryG
Что делать, если при проверке я могу увидеть свойство, но оно не появляется под 'getOwnPropertyNames' или' keys'? Пример: 'typeof obj ['stuff'] == 'function'; Object.getOwnPropertyNames (this) .indexOf ('stuff') == -1'. Это произошло на классе ES6, который был обновлен. – igorsantos07