JSのオブジェクトの深いコピーと浅いコピーの違いは何ですか

王林
リリース: 2020-05-10 09:14:11
転載
3369 人が閲覧しました

JSのオブジェクトの深いコピーと浅いコピーの違いは何ですか

#基本データ型の場合、コピーすると変数の値が直接コピーされますが、参照型の場合、実際にコピーされるのは変数のアドレスです。

浅いコピーと深いコピーの区別はこれに基づいて行われ、このオブジェクトをコピーする場合、基本データ型のみがコピーされ、参照データ型のみがコピーされます。新しいオブジェクトを再作成しない場合は浅いコピーとみなされ、

逆に、参照データ型をコピーする場合、新しいオブジェクトが作成され、そのメンバーがコピーされます。変数の場合は、深いコピーとみなされます。

ディープコピーサンプルコード:

let o2 = JSON.parse(JSON.stringify(o1))
function deepCopy(s) {
const d = {}
for (let k in s) {
if (typeof s[k] == 'object') {
d[k] = deepCopy(s[k])
} else {
d[k] = s[k]
}
}
return d
}
ログイン後にコピー

シャローコピーサンプルコード:

let o2=Object.assign({},o1)
ログイン後にコピー

推奨チュートリアル:js 入門チュートリアル

以上がJSのオブジェクトの深いコピーと浅いコピーの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート