对象的属性(变量+对象)

首先直接来个栗子:

var a={};
b={
  key:'b',
}
c={
  key:'c'
}
a[c]=456;
a[b]=123;

console.log(a)      //{ '[object Object]': 456 }
console.log(a[c])   //123
console.log(a[b]);   //123

如果调换位置,会发生什么呢???

 

 栗子2:

let a = {a: 10};
let b = {b: 10};
let obj = {
  a: 10
};
obj[b] = 20;
console.log(obj[a]);  //20;
console.log(obj);   //{ a: 10, '[object Object]': 20 }  ,原有的属性保持不变;
 
 
 
 
总结
  如果对象的属性为一个对象时,会自动的将对象转换成“{ '[object Object]': 456 }”字符串的形式,obj[a]中的a为一个变量,而且不管后面有多少个对象属性都会执行最后一个属性,因为之前的都会被覆盖替换;
  (对象里面添加属性,属性为一个变量时,添加属性时,需要写在[]里面)
  
  


 

                                           去他妈的精锐。老子打的就是精锐!!哈哈哈……

 
原文地址:https://www.cnblogs.com/gzw-23/p/11815309.html