<script setup lang="ts">
//1...扩展运算符只能拷贝一层 深层次不行
const json = { a: 1, b: 2 }
const json1 = { ...json }
json1.a = 2
console.log(json, json1)
//2.json方法 不能拷贝方法
const json3 = {
a: 1,
b: 2,
foo() {
console.log(1)
}
}
const json4 = JSON.parse(JSON.stringify(json3))
console.log(json3, json4)
//3 递归方法
const json5 = {
a: 1,
b: 2,
foo() {
console.log(11)
}
}
function copyFun(obj: any, deep: boolean) {
let temp: any = {}
if (obj instanceof Array) {
temp = []
}
for (let ob in obj) {
let value = obj[ob]
temp[ob] = !!deep && typeof value === 'object' && value !== null ? copyFun(value, deep) : value
}
return temp
}
let json6 = copyFun(json5, true)
console.log(json5, json6)
</script>
<template>深拷贝三种方法</template>
<style scoped></style>
javascript 深拷贝的三种方法
最新推荐文章于 2024-06-10 22:52:06 发布