Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ความแตกต่างระหว่าง .extend() / .assign() และ .merge() ใน Lodash

assign/extend นำแต่ละ property ใน source copy value as-is ไป destination ถ้า property values เป็น objects เอง ไม่มี recursive traversal นี่คือ shallow copying/cloning object ทั้งหมดถูกนำจาก source ไป destination

merge นำแต่ละ property ใน source เช็คว่า property นั้นเป็น object ไหม ถ้าเป็น จะลงไป recursively map child object properties จาก source ไป destination

ตัวอย่าง

let _ = require('lodash'); let destination = {    a: {       b: 1,       c: 2    }, }; let source = {    a: {       d: 2,       c: 3    }, }; console.log(_.merge(destination, source)); console.log(_.extend(destination, source));

ผลลัพธ์

{ a: { b: 1, c: 3, d: 2 } } { a: { d: 2, c: 3 } }