美文网首页
JS 中通过“键”给对象添加属性的注意事项

JS 中通过“键”给对象添加属性的注意事项

作者: magic_pill | 来源:发表于2018-01-19 16:21 被阅读18次
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

结果表明:通过键来给对象添加属性,如果键是由 “键值对” 构成,会将 “键值对” 转换成 “[object Object]”;如果通过多个键给对象添加属性,并且键都是由 “键值对” 构成,会产生覆盖现象,后面的值会覆盖掉前面的值。

相关文章

网友评论

      本文标题:JS 中通过“键”给对象添加属性的注意事项

      本文链接:https://www.haomeiwen.com/subject/rgzooxtx.html