我想我最好能解释一下我对代码的困惑:
var options = {};
exports.options = options;
exports.options.a = 'a';
console.log(exports.options, options);
exports.options = {};
console.log(options, exports.options);
在第一个输出中:
{ a: 'a' } { a: 'a' }
太好了,看来对
exports.options
执行的所有操作都将对options
完成!但是在第二个输出上:{ a: 'a' } {}
发生了什么?为什么
options
也不也是{}
?我该怎么办也要清空exports.options
的“空” options
?同样是这样:
options = {};
console.log(options, exports.options);
哪个输出:
{} { a: 'a' }
最佳答案
当您这样做时
exports.options = options;
您正在将与
options
关联的对象的引用分配给exports.options
。当您再次更改它时,
exports.options = {};
您正在为
exports.options
分配新引用,而无需更改options
。