Ich habe ein Objekt, das ich als Argument in eine Funktion übergebe. Innerhalb dieser Funktion möchte ich ihr einen anderen Wert zuweisen, aber da innerhalb der Funktion nur auf das ursprüngliche Objekt Bezug genommen wird, können wir keine einfache Zuweisung mit = verwenden.Zu Objekt übergeben, das als Argument in ES5 übergeben wird
In ES2015 konnte ich Object.assign
Gibt es eine Abhilfe verwende ich in ES5, andere als das Kopieren Eigenschaften auf die Referenz verwenden könnte?
Hier ist ein Beispiel https://jsbin.com/wimuvaqosi/1/edit?js,console
var x = {prop:1};
function foo(x1) {
var y = {prop:2};
x1 = y; //this obviously does not work
//x1 = Object.assign(x1, y); //this works only in ES2015
}
foo(x);
console.log("x ", x);
In Ihrem Beispiel: x1.prop = 2; Sie können jedes Objekt so ändern, dass es einem anderen gleicht. Es ist nicht nötig, einen neu zu erstellen –
'Object.assign' weist keinem anderen Objekt' x' zu. Es kopiert alle Eigenschaften von "y" nach "x". @ baaos Antwort ahmt 'Object.assign' genau nach. – James