structuredClone
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şmezBu, 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
-
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.
-
Kopyayı değiştir, orijinali koru
const copy = structuredClone(original); copy.list.____(3);Cevabı göster
const copy = structuredClone(original); copy.list.push(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.