Reflect.ownKeys() 方法用于返回对象的所有自有属性键的数组,包括不可枚举的属性。它类似于 Object.getOwnPropertyNames() 和 Object.getOwnPropertySymbols() ,因为它从这两个方法的组合输出中创建一个数组。当您需要迭代对象的每个属性时,无论其可枚举性如何,此方法都很有用。
它也可以用于检索字符串键和符号键,这是 Object.keys() 无法完成的。Object.keys() 和 Reflect.enumerate() 包含继承的属性,而 Reflect.ownKeys() 则不包含。
语法
以下是 JavaScript Reflect.ownKeys() 方法的语法 -
Reflect.ownKeys( obj )
参数
此方法只接受一个参数。相同的描述如下 -
- obj - 从中获取自己的键的目标对象。
返回值
此方法返回目标 oject 自己的属性键数组。
示例 1
让我们看看下面的例子,我们将在具有字符串 keys 的对象上使用 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
考虑另一个场景,我们将使用 non-enumerable 属性。
<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>
当我们执行上述脚本时,会弹出输出窗口,在网页上显示文本。