JS 中通过“键”给对象添加属性的注意事项
2018-01-19 本文已影响18人
magic_pill
var obj = {};
var a = {name:"zhangsan"};
console.log(obj["a"]); //undefined
console.log(obj[a]); //undefined
obj["a"] = "A";
obj[a] = "A+"; //此时 obj[a]实际上已经转换为:obj[[object Object]]
console.log(obj["a"]); //A
console.log(obj[a]); //A+, 此时获取 obj[a] 的值,实际上转化为获取 obj[[object Object]] 的值
var b = {age:23};
obj["b"] = "B";
obj[b] = "B+"; //此时 obj[b]实际上已经转换为:obj[[object Object]]
console.log(obj["b"]); //B
console.log(obj[b]); //B+ ,获取 obj[b] 的值,实际上转化为获取 obj[[object Object]] 的值
console.log(obj[a]); //B+,转化为获取 obj[[object Object]] 的值
console.log(obj[{aa:123}]); //B+,转化为获取 obj[[object Object]] 的值
var a = [1,2];
obj[a] = 111;
obj["a"] = 222;
var b = [3,4,5];
obj[b] = 333;
console.log(obj[a]); //111
console.log(obj["a"]); //222