Reflect.ownKeys()
The Reflect.ownKeys(obj) method returns an array of an object's own property keys
(string and Symbol based).
It is similar to combining Object.getOwnPropertyNames()
and Object.getOwnPropertySymbols().
Example
const sym = Symbol("secret");
const obj = { a: 1, [sym]: 2 };
let keys = Reflect.ownKeys(obj);
Try it Yourself »
Almost the same as using Object.keys():
let keys = Object.keys(obj);
Try it Yourself »
Why Use Reflect?
Reflect.ownKeys() returns ALL keys, including symbols.
Object.keys() does not include symbols.
Syntax
Reflect.ownKeys(obj)
Parameters
| Parameter | Description |
|---|---|
| obj | Required. The target object. |
Return Value
| Type | Description |
|---|---|
| Array | An Array of the object's own property keys, including strings and symbols. |
Errors
| Type | Description |
|---|---|
| TypeError | Thrown if obj is not an object. |
Reflect Methods:
Reflect.apply()
Reflect.construct()
Reflect.defineProperty()
Reflect.deleteProperty()
Reflect.get()
Reflect.getOwnPropertyDescriptor()
Reflect.getPrototypeOf()
Reflect.has()
Reflect.isExtensible()
Reflect.ownKeys()
Reflect.preventExtensions()
Reflect.set()
Reflect.setPrototypeOf()
Browser Support
Reflect.ownKeys() is an ECMAScript6 (ES6 2015) feature.
JavaScript 2015 is supported in all browsers since June 2017:
| Chrome 51 |
Edge 15 |
Firefox 54 |
Safari 10 |
Opera 38 |
| May 2016 | Apr 2017 | Jun 2017 | Sep 2016 | Jun 2016 |