JavaScript - Reflect.ownKeys() 方法
Reflect.ownKeys() 方法用于返回对象所有自有属性键的数组,包括不可枚举的属性。它与 Object.getOwnPropertyNames() 和 Object.getOwnPropertySymbols() 类似,它会将这两个方法的输出合并起来创建一个数组。当需要迭代对象的每个属性(无论其是否可枚举)时,此方法非常有用。
它还可以用于检索字符串和符号键,这是 Object.keys() 无法实现的。 Object.keys() 和 Reflect.enumerate() 包含继承属性,而 Reflect.ownKeys() 不包含。
语法
以下是 JavaScript Reflect.ownKeys() 方法的语法 -
Reflect.ownKeys( obj )
参数
此方法仅接受一个参数。下文将对此进行描述 -
obj - 获取自身键的目标对象。
返回值
此方法返回目标对象自身属性键的数组。
示例
示例 1
让我们看下面的示例,我们将对带有字符串键的对象使用 Reflect.ownKeys()。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
car: 'RS6',
model: 2024
};
const keys = Reflect.ownKeys(x);
document.write(JSON.stringify(keys));
</script>
</body>
</html>
如果我们执行上述程序,它将在网页上显示一段文本。
示例 2
考虑另一种使用不可枚举属性的场景。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {};
Object.defineProperty(x, 'WELCOME', {
value: 1,
enumerable: false
});
document.write(JSON.stringify(Reflect.ownKeys(x)));
</script>
</body>
</html>
执行上述脚本后,网页上将显示一段文本。
示例 3
在下面的示例中,我们将使用 Reflect.ownKeys() 来检索数组的所有键。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = ['11', '22', '33'];
const y = Reflect.ownKeys(x);
document.write(JSON.stringify(y));
</script>
</body>
</html>
当我们执行上述脚本时,会弹出输出窗口,显示网页上的文本。

