对象引用问题

在使用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 = {....};

猜你喜欢

转载自blog.csdn.net/m0_37158404/article/details/83098382
今日推荐