我想我最好能解释一下我对代码的困惑:

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

09-17 15:51
查看更多