在学习commonjs模板化规范的时候,看到大家经常在说的一句话,即导出是值的拷贝,无法通过模块内部去改变属性值。
然后给出以下代码块讲解
// a.js
var name = 'morrain'
var age = 18
exports.name = name
exports.age = age
exports.setAge = function(a){
age = a
}
// b.js
var a = require('a.js')
console.log(a.age) // 18
a.setAge(19)
console.log(a.age) // 18
我不是很明白这边值的拷贝跟无法通过模块内部去改变属性值有什么必然联系
就不懂为什么a.setAge(19)改不了