ホームページ  >  記事  >  ウェブフロントエンド  >  JSのオブジェクトの深いコピーと浅いコピーの違いは何ですか

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

王林
王林転載
2020-05-10 09:14:113360ブラウズ

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 までご連絡ください。