我有这样的代码:Object.assign() - 怪异的行为需要解释
function margeOptions(options, passedOptions) {
options = Object.assign(options, passedOptions);
}
let passedOpts = {a: true};
let opts = {a: false};
margeOptions(opts, passedOpts);
console.log(opts); // as expected returns {a: true}
但是当我改变功能一点点,像这样:
function margeOptions(options, passedOptions) {
options = Object.assign({}, options, passedOptions);
}
let passedOpts = {a: true};
let opts = {a: false};
margeOptions(opts, passedOpts);
console.log(opts); // this time returns {a: false} <-- !
那么这里发生了什么?
'formal_parameter ='在函数中不会以任何方式影响实际参数 – georg