在使用require.js时,遇到的对象引用问题
文件1:userMod.js
var user= {
"name": '小白',
"age": 0
};
return {
"user": user
};
文件2:roleMod.js
console.log(userMod.user.name); // 小白
console.log(userMod.user.age); // 0
// 场景1
userMod.user.name = '小黑';
userMod.user.age= 18;
在这一步,userMod.user指向的仍然是指向userMod.js里的user
所以userMod.js中变量user的值变成了
{
"name": '小黑',
"age": 18
}
// 场景2 (使用误区)
userMod.user = {
"name": '小黑',
"age": 18
}
在这一步,userMod.user指向的是一个新对象,不再指向userMod.js里的user;后面无论对userMod.user怎么操作也不会影响userMod.js中user的值。
userMod.js中变量user的值一直都会是
{
"name": '小白',
"age": 0
}
require如果导出对象使用时,一定要注意不能将另一个对象直接赋值给导出的对象,如:
testMod.user = {....};