私は関数に引数として渡すオブジェクトを持っています。その関数の中で私は別の値を代入したいのですが、関数の内部では元のオブジェクトへの参照しか持たないので、=で単純な代入を使うことはできません。 ES2015ではES5で引数として渡されたオブジェクトへの割り当て
私が参照にプロパティをコピーする以外に、私はES5に使用できる回避策は、ありObject.assign
使用することができますか?ここで
は例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);
例:x1.prop = 2;すべてのオブジェクトを別のオブジェクトに変更することができます。 –
'Object.assign'は' x'を別のオブジェクトに割り当てません。 'y'のすべてのプロパティを' x'にコピーします。 @ baaoの答えは正確に 'Object.assign'と似ています。 – James