Object.getOwnPropertySymbols()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 2015 年 9 月以來,該特性已在各大瀏覽器中可用。

靜態方法 Object.getOwnPropertySymbols() 返回一個數組,其中包含在給定物件上直接找到的所有符號屬性。

試一試

const object = {};
const a = Symbol("a");
const b = Symbol.for("b");

object[a] = "localSymbol";
object[b] = "globalSymbol";

const objectSymbols = Object.getOwnPropertySymbols(object);

console.log(objectSymbols.length);
// Expected output: 2

語法

js
Object.getOwnPropertySymbols(obj)

引數

obj

要返回其符號屬性的物件。

返回值

在給定物件上直接找到的所有符號屬性的陣列。

描述

類似於 Object.getOwnPropertyNames(),您可以將給定物件的所有符號屬性作為符號陣列獲取。請注意,Object.getOwnPropertyNames() 本身不包含物件的符號屬性,只包含字串屬性。

由於所有物件最初都沒有自己的符號屬性,因此除非您在物件上設定了符號屬性,否則 Object.getOwnPropertySymbols() 將返回一個空陣列。

示例

使用 Object.getOwnPropertySymbols()

js
const obj = {};
const a = Symbol("a");
const b = Symbol.for("b");

obj[a] = "localSymbol";
obj[b] = "globalSymbol";

const objectSymbols = Object.getOwnPropertySymbols(obj);

console.log(objectSymbols.length); // 2
console.log(objectSymbols); // [Symbol(a), Symbol(b)]
console.log(objectSymbols[0]); // Symbol(a)

規範

規範
ECMAScript® 2026 語言規範
# sec-object.getownpropertysymbols

瀏覽器相容性

另見