js深コピー、プロトタイプチェーンは含まれていません.
665 ワード
1、
2、再帰的に各レイヤーを利用してオブジェクトを再作成し、値を割り当てます.
JavaScript
値と JSON
文字列の相互変換const new = JSON.parse(JSON.stringify(old))
2、再帰的に各レイヤーを利用してオブジェクトを再作成し、値を割り当てます.
function copy(val) {
const result = Object.prototype.toString.call(val) === '[object Object]' ? {} : []
for (let key in val) {
let value = val[key]
if (Object.prototype.toString.call(value) === '[object Object]' ||
Object.prototype.toString.call(value) === '[object Array]') {
result[key] = copy(value)
} else {
result[key] = value
}
}
return result
}