JS `Object.assign()`:对象浅拷贝与合并

各位靓仔靓女,老少爷们儿,大家好!我是你们的贴心小棉袄(技术层面的),今天咱们来聊聊JavaScript里一个非常实用,但又容易让人掉坑的家伙——Object.assign()。 这玩意儿,说它简单吧,assign嘛,不就是“分配、赋值”的意思?说它复杂吧,一不小心就给你整出个深浅拷贝的幺蛾子,让你debug到怀疑人生。所以,今天咱们就来把它扒个精光,看看它到底是个什么玩意儿。 开场白:浅拷贝的世界你不懂 首先,我们得明确一个概念:JavaScript里的对象,那都是引用类型。啥意思呢?简单来说,你用等号=赋值的时候,赋的不是对象本身,而是指向这个对象在内存里的地址的“指针”。 let obj1 = { name: ‘张三’, age: 20 }; let obj2 = obj1; obj2.age = 25; console.log(obj1.age); // 输出:25 !!! obj1也被修改了 看到没?明明改的是obj2的age,obj1的age也跟着变了!这就是引用类型的特性,obj1和obj2指向的是同一个内存地址,修改其中一个,另一个自然也跟着变。 这种赋值方式,我们通常 …