首先直接来个栗子:
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为一个变量,而且不管后面有多少个对象属性都会执行最后一个属性,因为之前的都会被覆盖替换;
(对象里面添加属性,属性为一个变量时,添加属性时,需要写在[]里面)
去他妈的精锐。老子打的就是精锐!!哈哈哈……