Für einen so einfachen Anwendungsfall der flachen Verschmelzung muss das Rad nicht neu erfunden werden.
Die Object.assign () -Methode wird verwendet, um die Werte aller aufzählbaren eigenen Eigenschaften von einem oder mehreren Quellobjekten in ein Zielobjekt zu kopieren. Das Zielobjekt wird zurückgegeben.
var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = Object.assign(o1, o2, o3);
console.log(obj);
console.log(o1);
Sogar die Leute von Node.js sagen es so :
_extendwar nie für die Verwendung außerhalb interner NodeJS-Module vorgesehen. Die Community hat es trotzdem gefunden und benutzt. Es ist veraltet und sollte nicht in neuem Code verwendet werden. JavaScript kommt mit sehr ähnlichen integrierten Funktionen durch Object.assign.
Aktualisieren:
Seit Version 8.6 ist es möglich, den Spread-Operator in Node.js nativ zu verwenden. Beispiel unten:
let o1 = { a: 1 };
let o2 = { b: 2 };
let obj = { ...o1, ...o2 };
Object.assign funktioniert aber immer noch.
PS1 : Wenn Sie tatsächlich an einer tiefen Zusammenführung interessiert sind (bei der interne Objektdaten - in beliebiger Tiefe - rekursiv zusammengeführt werden), können Sie Pakete wie deepmerge , assign -deep oder lodash.merge verwenden , die recht klein und einfach zu handhaben sind verwenden.
PS2 : Beachten Sie, dass Object.assign nicht mit 0.X-Versionen von Node.js funktioniert . Wenn Sie mit einer dieser Versionen arbeiten (sollten Sie jetzt wirklich nicht ), können Sie diese require("util")._extendwie im obigen Link Node.js gezeigt verwenden. Weitere Informationen finden Sie in der Antwort von tobymackenzie auf dieselbe Frage .