使用 JSON.stringify 实现深拷贝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
let jsonStr = JSON.stringify(
{
undefind: window.vvvv,
null: null,
name: 'Leo',
site: 'https://xuebin.com',
fun: function() {
console.log(this.name, this.site)
},
},
(key, value) => {
return typeof value === 'function' ? '' + value : value === undefined ? 'undefined' : value
},
2,
)

console.log(jsonStr)

let jsonObj = JSON.parse(jsonStr, (key, value) => {
try {
return eval('(' + value + ')')
} catch (e) {
return value
}
})

console.log(jsonObj.fun())
坚持原创技术分享,您的支持将鼓励我继续创作!