Object.getOwnPropertySymbols()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

Phương thức tĩnh Object.getOwnPropertySymbols() trả về một mảng gồm tất cả các thuộc tính symbol được tìm thấy trực tiếp trên một đối tượng đã cho.

Try it

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

Cú pháp

js
Object.getOwnPropertySymbols(obj)

Tham số

obj

Đối tượng mà các thuộc tính symbol sẽ được trả về.

Giá trị trả về

Một mảng gồm tất cả các thuộc tính symbol được tìm thấy trực tiếp trên đối tượng đã cho.

Mô tả

Tương tự như Object.getOwnPropertyNames(), bạn có thể lấy tất cả các thuộc tính symbol của một đối tượng đã cho dưới dạng mảng các symbol. Lưu ý rằng bản thân Object.getOwnPropertyNames() không chứa các thuộc tính symbol của một đối tượng mà chỉ chứa các thuộc tính chuỗi.

Vì tất cả các đối tượng ban đầu không có thuộc tính symbol nào, Object.getOwnPropertySymbols() trả về một mảng rỗng trừ khi bạn đã đặt thuộc tính symbol trên đối tượng của mình.

Ví dụ

Sử dụng 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)

Đặc tả

Specification
ECMAScript® 2027 Language Specification
# sec-object.getownpropertysymbols

Tương thích trình duyệt

Xem thêm