Object.keys()
итерацию перечислимых свойств объекта. И методов ES6 нет. Вы можете использовать что-то вроде getOwnPropertyNames()
. Кроме того, методы определены на прототипе вашего объекта, поэтому вам понадобится Object.getPrototypeOf()
, чтобы получить их. Работа example:
for (let name of Object.getOwnPropertyNames(Object.getPrototypeOf(callbacks))) {
let method = callbacks[name];
// Supposedly you'd like to skip constructor
if (!(method instanceof Function) || method === Callbacks) continue;
console.log(method, name);
}
Пожалуйста, обратите внимание, что если вы используете символы в качестве ключей методы вы должны были бы использовать getOwnPropertySymbols()
перебирать их.
Вам также нужно сделать 'getOwnPropertySymbols'. Или используйте 'Reflect.ownKeys' – loganfsmyth