JavaScript Object.getOwnPropertySymbols()

In this tutorial, you will learn about the JavaScript Object.getOwnPropertySymbols() method with the help of examples.

The Object.getOwnPropertySymbols() method returns an array of all the symbol properties found in a given object.

Example

const symbol1 = Symbol('symbol1');
const symbol2 = Symbol('symbol2');

const obj = {
  property1: 'value1',
  [symbol1]: 'value2',
  [symbol2]: 'value3'
};

// get all the symbols of the obj const symbols = Object.getOwnPropertySymbols(obj);
console.log(symbols); // Output: [ Symbol(symbol1), Symbol(symbol2) ]

getOwnPropertySymbols() Syntax

The syntax of the getOwnPropertySymbols() method is:

Object.getOwnPropertySymbols(obj)

Here, getOwnPropertySymbols() is a static method. Hence, we need to access the method using the class name, Object.


getOwnPropertySymbols() Parameters

The getOwnPropertySymbols() method takes in:

  • obj - the object whose symbol properties are to be returned.

getOwnPropertySymbols() Return Value

The getOwnPropertySymbols() method returns an array of all symbol properties found in the given object.

Note: Object.getOwnPropertySymbols() returns all symbol properties of the object while Object.getOwnPropertyNames() returns the string properties.


Example: JavaScript Object.getOwnPropertySymbols()

// create a symbol id
let id = Symbol("id");

// create a symbol name
let name = Symbol("name");

// create an object with
// symbol keys: id and name
// and string key: age

let superhero1 = {
  [id]: 102,
  [name]: "Bruce Wayne",
  age: 40 
};

// get all symbols of superhero1 let objectSymbols = Object.getOwnPropertySymbols(superhero1);
// print the symbols console.log(objectSymbols); // Output: [ Symbol(id), Symbol(name) ]

In the above program, we have created an object superhero1 with the following properties:

  • symbols - id and name
  • string - age

Then, we used the getOwnPropertySymbols() method on superhero1 to list its symbol properties.

As expected, we get an array listing only the symbols id and name as the output.


Recommended Reading:

Did you find this article helpful?