2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ディープコピーとシャローコピーについての備忘録

Last updated at Posted at 2020-01-30

簡単な備忘録

copy.js
import { cloneDeep } from 'lodash';

let shallowCopied = Object.assign({}, source);
let deepCopied = cloneDeep(source);

シャローコピーの場合はオブジェクトのプロパティ値が
プリミティブ型の場合はコピーできますが
オブジェクトの場合、インスタンスが共有されてしまいます。
(参照先がコピー元のまま)

lodashライブラリを利用することで
ディープコピーができます。

なお、import文をただ書いただけの場合、
webpackでのバンドル時に不必要なモジュールまでバンドルして
ファイルサイズが肥大化してしまうようです。

lodash-webpack-pluginを利用することで
必要なモジュールのみのバンドルが可能なようです。

参考

javascriptでlodashを使ってディープコピーを簡単に行う
[webpack] バンドルされるLodashのサイズを減らす方法

2
2
0

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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?