关于module.exports和exports
关于module.exports和export
总结:直接使用module.exports.属性名=属性值 的方式,根据后面的会覆盖前面的原则。
使用module.exports={ 属性名:属性值}方式,由于module.exports是新指向了一块内存,exports还是指向原来内存,两者之间发生改变。来看
1.exports 在前,module.exports.属性名=属性值 在后
exports.name = “张三”;
exports.age = 34;
module.exports.name = “李四”;
module.exports.age = 22;
console.log(module.exports)
console.log(Object.is(exports,module.exports))
2.exports 在后,module.exports.属性名=属性值 在后
3.exports在前,module.exports={ 属性名:属性值}在后
4.exports在后,module.exports={ 属性名:属性值}在前 (与3一样)
补充:modules是真实存在的东西,exports只是modules.exports的辅助方法.模块最终返回module.exports给调用者,而不是exports。
s的辅助方法.模块最终返回module.exports给调用者,而不是exports。
exports所做的事情是收集属性,如果module.exports当前没有任何属性的话,exports会把这些属性赋予module.exports。(如果module.exports已经存在一些属性的话,那么exports中所用的东西都会被忽略)上述4种情况讨论