Object.keys()
lặp chỉ tính đếm được của các đối tượng. Và phương pháp ES6 thì không. Bạn có thể sử dụng một cái gì đó như getOwnPropertyNames()
. Ngoài ra các phương pháp được định nghĩa trên nguyên mẫu của đối tượng của bạn, do đó bạn cần Object.getPrototypeOf()
để có được chúng. Làm việc 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);
}
Xin lưu ý rằng nếu bạn sử dụng biểu tượng như phím phương pháp mà bạn sẽ cần phải sử dụng getOwnPropertySymbols()
để lặp qua chúng.
Nguồn
2015-07-15 07:09:47
Bạn cũng cần phải thực hiện 'getOwnPropertySymbols'. Hoặc sử dụng 'Reflect.ownKeys' – loganfsmyth