JavaScript 对象的 Object.getOwnPropertySymbols() 方法详解
Object.getOwnPropertySymbols()
方法返回给定对象中所有符号属性的数组。
示例
const symbol1 = Symbol("symbol1");
const symbol2 = Symbol("symbol2");
const obj = {
property1: "value1",
[symbol1]: "value2",
[symbol2]: "value3",
};
// 获取obj的所有符号
const symbols = Object.getOwnPropertySymbols(obj);
console.log(symbols);
// 输出: [ Symbol(symbol1), Symbol(symbol2) ]
getOwnPropertySymbols()语法
getOwnPropertySymbols()
方法的语法是:
Object.getOwnPropertySymbols(obj);
这里,getOwnPropertySymbols()
是一个静态方法。因此,我们需要使用类名Object
来访问这个方法。
getOwnPropertySymbols()参数
getOwnPropertySymbols()
方法接受:
- obj - 需要返回其符号属性的对象。
getOwnPropertySymbols()返回值
getOwnPropertySymbols()
方法返回一个数组,包含给定对象中找到的所有符号属性。
注意: Object.getOwnPropertySymbols()
返回对象的所有符号属性,而Object.getOwnPropertyNames()
返回字符串属性。
示例:JavaScript对象Object.getOwnPropertySymbols()
// 创建一个符号id
let id = Symbol("id");
// 创建一个符号name
let name = Symbol("name");
// 创建一个对象,包含
// 符号键:id和name
// 和字符串键:age
let superhero1 = {
[id]: 102,
[name]: "Bruce Wayne",
age: 40,
};
// 获取superhero1的所有符号
let objectSymbols = Object.getOwnPropertySymbols(superhero1);
// 打印符号
console.log(objectSymbols);
// 输出: [ Symbol(id), Symbol(name) ]
在上述程序中,我们创建了一个名为superhero1的对象,包含以下属性:
- 符号 - id和name
- 字符串 - age
然后,我们在superhero1上使用了getOwnPropertySymbols()
方法来列出其符号属性。
正如预期,我们得到了一个只列出符号id和name的数组作为输出。
推荐阅读: