構造化複製アルゴリズム
構造化複製アルゴリズム は複雑な JavaScript オブジェクトをコピーするためのアルゴリズムです。これは postMessage() を介してワーカーと送受信するとき、 IndexedDB にオブジェクトを格納するとき、他の API のためにオブジェクトをコピーするときなど、データ転送時に内部で用いられています。
無限ループを避けるため、以前にアクセスした参照のマップを保持しながら、入力オブジェクトを再帰処理することで複製していきます。
構造化複製で動作しないもの
Functionオブジェクトは構造化複製アルゴリズムでは複製されません。複製しようとするとDataCloneError例外が発生します。- DOM ノードを複製するときも同様に 
DataCloneError例外発生します。 - 一部のオブジェクトのプロパティは保持されません。
 
対応済みの型
| オブジェクト型 | 備考 | 
|---|---|
| すべてのプリミティブ型 | ただし、シンボルを除く | 
Boolean オブジェクト | 
      |
String オブジェクト | 
      |
Date | 
      |
RegExp | 
      lastIndex は保持されません。 | 
    
Blob | 
      |
File | 
      |
FileList | 
      |
ArrayBuffer | 
      |
TypedArray | 
      |
DataView | 
      |
ImageBitmap | 
      |
ImageData | 
      |
Array | 
      |
Object | 
      プレーンなオブジェクト(オブジェクトリテラルなど)のみです。 | 
Map | 
      |
Set | 
      |
DOMException | 
      ブラウザーは、プロパティ name と message をシリアライズしなければなりません。
      他の属性もシリアライズ/複製することができます。 | 
    
ネイティブの Error 型 | 
      
         エラー名は、  ブラウザーは  
  |