js 连续赋值运算
var a = {n: 1};
 var b = a;
 a.x = a = {n: 2};
 这里面第三句可以直接拆解为:
 a.x,a // 先计算各个表达式(并非原始表达式),.运算符优先级高
 a = {n : 2}; // 再计算运算符组成的复杂表达式
 a.x 运算的结果,是和 b 引用的同一个内存地址的对象 {n:1},
 而 a 赋值的时候,a 的内存地址就指向了{n:2},
 最后 a.x 是 undefined,b.x 是 {n:2},  
// js 赋值问题
o = {};
c = o.a; //这里没有给o.a赋值
c = o.b = []; //这里给o.b赋值了