JS: Does Object.assign() create deep copy or shallow copy

后端 未结 7 1120
粉色の甜心
粉色の甜心 2020-11-30 03:21

I just came across this concept of

var copy = Object.assign({}, originalObject);

which creates a copy of original object into the \"

7条回答
  •  囚心锁ツ
    2020-11-30 04:10

    Forget about deep copy, even shallow copy isn't safe, if the object you're copying has a property with enumerable attribute set to false.

    MDN :

    The Object.assign() method only copies enumerable and own properties from a source object to a target object

    take this example

    var o = {};
    
    Object.defineProperty(o,'x',{enumerable: false,value : 15});
    
    var ob={}; 
    Object.assign(ob,o);
    
    console.log(o.x); // 15
    console.log(ob.x); // undefined
    

提交回复
热议问题