CodeBlanks Logo Icon CodeBlanks

structuredClone

JavaScript kursu · Orta seviye · Ders 109/134

structuredClone ile bir nesnenin derin kopyasını almayı öğrenirsin.

Nesnenin derin kopyası

Bir nesneyi = ile kopyalarsan yalnızca referansını kopyalarsın; iç içe nesneler paylaştırılır. structuredClone metodu ise derin bir kopya üretir: tüm iç içe değerler yeni nesneler olarak çoğaltılır.

const original = { list: [1, 2] };
const copy = structuredClone(original);
copy.list.push(3);
// original.list değişmez

Bu, nesneyi bozmadan bağımsız bir kopya üzerinde çalışmanı sağlar.

Döngüsel referanslar

Bir nesne kendine işaret eden bir özellik içeriyorsa buna döngüsel referans denir. = ile kopyalama bu durumu bozmaz ama klasik yollarla derin kopya yapmak çökebilir.

structuredClone döngüsel referansları doğru şekilde kopyalar; nesne yapısı korunur.

const a = {};
a.self = a;
const copy = structuredClone(a);
// copy.self === copy

Uygulama Derin kopya al

template nesnesinin derin kopyasını al ve copy değişkenine ata. structuredClone metodunu kullan.

Örnek çözümü göster
structuredClone metodunu template ile çağır.
Örnek çözüm:
const copy = structuredClone(template);

Kendini test et

  1. structuredClone ne üretir?

    structuredClone({a: {b: 1}})
    • Derin kopya
    • Yüzeysel kopya
    • Referans
    • Metin
    Cevabı göster

    Derin kopya — Doğru! structuredClone derin ve bağımsız kopya üretir.

  2. Kopyayı değiştir, orijinali koru

    const copy = structuredClone(original);
    copy.list.____(3);
    Cevabı göster
    const copy = structuredClone(original);
    copy.list.push(3);
  3. Döngüsel referansı olan nesneyi kopyalamak

    const a = {}; a.self = a;
    • structuredClone hata fırlatır
    • structuredClone doğru kopyalar
    • Yalnızca = çalışır
    • Hiçbir yöntem çalışmaz
    Cevabı göster

    structuredClone doğru kopyalar — Doğru! structuredClone döngüsel referansları destekler.

Orta seviye bölümündeki tüm dersler