I want to do a deep copy of an object which also has function as keys.
So I do
deepCopy = structuredClone(existingObjWithFns);
However when this runs, I get the below error:
Uncaught (in promise) DOMException: Failed to execute ‘structuredClone’ on ‘Window’: function MyFunction()
2
Answers
Function objects cannot be duplicated by the structured clone algorithm; attempting to throws a DataCloneError exception.
for more information, you can read MDN
if you want to deep clone nested objects, you should make a function to check the type of all of them and copy them one by one.
Lodash
deepClone
work with all types, function,s and Symbol copied by reference I suggest that you useLodash
.but with the
object.assign()
you can do it faster:for more information about object cloning you can follow this link
structuredClone is not available on Browsers stack or on plain javascript. It is a latest feature of Nodejs.
Best way on Browser or plain javascript is to use Lodash.