【发布时间】:2017-04-30 04:39:24
【问题描述】:
我有这个代码:
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 =在函数中不会以任何方式影响实际参数
标签: javascript object assign