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 :
_extend
war 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")._extend
wie im obigen Link Node.js gezeigt verwenden. Weitere Informationen finden Sie in der Antwort von tobymackenzie auf dieselbe Frage .