更改对象键的值会同时更改另一个

我有一个复杂的变量作为一个对象,包括相同对象的2倍。 如果更改第一部分的值,则假定更改第二部分的值。有解释吗?为何仍然连接拖车键?! 这是我的代码的一个简单示例:

A={'a':''};
B={'b1':A,'b2':A};
B['b1']['a']='blabla';
console.log(B['b2']);  // => 'blabla' but not ''

我不想写'B = {'b1':{'a':''},'b2':{'a':''}}'',因为A是一个单独的.js中很大的对象文件