我有這樣的代碼: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