structuredClone

3 snippets in JavaScript

JSJavaScript

Deep Cloning Arrays

JS · Arrays
Syntax
structuredClone(value)
Example
const original = [
  { name: "Ava", scores: [90, 85] },
  { name: "Leo", scores: [78, 92] },
];
const clone = structuredClone(original);
clone[0].scores.push(100);

console.log(original[0].scores); // [90, 85] (not affected)
console.log(clone[0].scores);    // [90, 85, 100]

Note structuredClone handles nested objects, arrays, Maps, Sets, Dates, RegExps, and more. Does NOT clone functions, DOM nodes, or prototypes.

Deep Cloning Objects

JS · Objects
Syntax
structuredClone(obj)
Example
const original = {
  user: { name: "Kai", tags: ["admin", "editor"] },
  updatedAt: new Date(),
};
const clone = structuredClone(original);
clone.user.tags.push("viewer");

console.log(original.user.tags); // ["admin", "editor"]

Note Handles circular references, Dates, Maps, Sets, ArrayBuffers, and more. Does NOT clone functions, Errors, or DOM nodes.

structuredClone()

JS · Modern Features
Syntax
const clone = structuredClone(value);
Example
const original = {
  name: "Ava",
  scores: [95, 88, 72],
  metadata: { joined: new Date("2024-01-15") },
};
const clone = structuredClone(original);
clone.scores.push(100);
clone.metadata.joined.setFullYear(2025);

console.log(original.scores);          // [95, 88, 72]
console.log(original.metadata.joined); // 2024-01-15 (unchanged)

Note Built-in deep clone that handles Dates, Maps, Sets, RegExps, ArrayBuffers, circular references. Cannot clone functions, DOM nodes, or Error objects.

Frequently asked questions

How does JavaScript handle structuredClone?
JavaScript covers this with 3 copy-ready snippets on this page. The "Deep Cloning Arrays" snippet in JavaScript uses `structuredClone(value)`.
Which code does the JavaScript example use?
The "Deep Cloning Arrays" snippet uses `structuredClone(value)`, from the Arrays section of the JavaScript cheat sheet.
What other JavaScript snippets are shown for "structuredClone"?
Besides "Deep Cloning Arrays", this page also shows "Deep Cloning Objects", "structuredClone()".
Is there anything to watch out for?
Yes. For "Deep Cloning Arrays": structuredClone handles nested objects, arrays, Maps, Sets, Dates, RegExps, and more. Does NOT clone functions, DOM nodes, or prototypes.