基础版(不能解决循环引用)
基础版
1 | function deepClone(obj){ |
执行结果
1 | let od = { |
如果循环引用到导致爆栈
1 | // 如果循环引用 会直接导致爆栈; |
增强版(兼容循环引用)
1 | // 该函数的关键点为 WeakMap, 主要是为了解决循环引用问题; |
此时循环引用则正常输出
1 | // 如果循环引用 会直接导致爆栈; |
cloneSelf
属性为一个循环嵌套属性;
基础版(不能解决循环引用)
基础版
1 | function deepClone(obj){ |
执行结果
1 | let od = { |
如果循环引用到导致爆栈
1 | // 如果循环引用 会直接导致爆栈; |
增强版(兼容循环引用)
1 | // 该函数的关键点为 WeakMap, 主要是为了解决循环引用问题; |
此时循环引用则正常输出
1 | // 如果循环引用 会直接导致爆栈; |
cloneSelf
属性为一个循环嵌套属性;