動機
當你以為deep copy是正常的builtin時,Javascript總是能給你驚喜
當初我以為
- Object其實是hash table,所以拿來放function key很合理(又都是指到同一個function)
- 用console.log看的到
- hash table如果被deep copy應該要對key, values做deep copy
- deep copy是基本功能
實際上
- 沒有deep copy
- google後大部分會說用
JSON.stringify
- 用Object.entries不會出現function key
- console.log不是有出現嗎!?
- function key不會出現在
JSON.stringify
中!!
- 用
Object.assign({},obj)
之類的,可以處理function key
Object.assign({},obj)
不會deepcopy!! (shallow copy)
structuredClone
但要看版本,夠新才會有,polyfill的可能有毛病
- 用套件
lodash - cloneDeep