JS:深さコピー属性はSymbolというオブジェクトです.
865 ワード
1.JSON.parse(JSON.strigify(obj)メソッドは、属性名がSymbolの属性を持つものをコピーできません.
2.Reflect.ownKeys()を利用した解決コードは以下の通りです.
2.Reflect.ownKeys()を利用した解決コードは以下の通りです.
<script type="text/javascript">
let name = Symbol('name')
let say = Symbol('say')
var tmp = {
[say]: 'Hello'
}
var o = {
[name]: 'xx',
age: 2,
tmp,
}
function deepCopy(obj) {
let result = {}
for(let tmp of Reflect.ownKeys(obj)) {
if(typeof obj[tmp] !== 'object')
result[tmp] = obj[tmp]
else
result[tmp] = deepCopy(obj[tmp])
}
return result
}
</script>
</code></pre>
<p> 。</p>
</div>
</div>
</div>
</div>