1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

structuredCloneはそろそろ使えるのでは

Last updated at Posted at 2023-08-17

structuredCloneとは

グローバルの structuredClone() メソッドは、指定された値のディープコピーを、構造化複製アルゴリズムを用いて生成します。

シャローコピー、ディープコピー

Javascriptにはシャローコピーとディープコピーが存在します。
Array,Objectはスプレッド構文を使うとコピーできているように見えますが、シャローコピーとなってしまい、変数の変更時に予期せぬ挙動になることがあります。
そのため今までJS開発者はディープコピーを行うために各種ライブラリを使ってきたわけですが、そろそろネイティブを使い始めてもいいんじゃないのかと思い記事にしてみました。

オブジェクトのシャローコピーとは、コピーがコピー元のオブジェクトとプロパティにおいて同じ参照を共有する(同じ基礎値を指す)コピーのことを指します。

オブジェクトの ディープコピー とは、コピー先のオブジェクトのプロパティがコピー元のオブジェクトのプロパティと同一の参照(同じ値を指す)を共有しないコピーのことです

で何が問題があるのかというと

MDNで記載されているブラウザの互換性の部分次第ということになると思ってます。

いちおうすべてチェックが入っていますが、その内容を確認すると、一番問題になりそうなのは、safari 15.4かと考えています。(OSと紐づいてるためUPDATEしてない人多そうという勝手なイメージ)
safari 15.4ということはiOS15.4なわけで、リリースは2022/03です。1年半も経過しiOS17も出そうな時期であるためそろそろいいんじゃないかと・・・

でも旧OS使っている人は数パーセントでもいるのはいそうなので、安全を取ろうとするとやっぱり無理なのかなとも思いつつ

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?