我在看别人写的代码
var myProtocol = {name:"proto"};这里定义了一个对象
myProtocol["person_info"] = {“name":"xiaoming", "age":"30"};
myProtocol["car_info"]={"num":"A1111", "color":"red"};
后面myProtocol["person_info"] 、myProtocol["car_info"]是什么意思,特别是[]里带字符串????

解决方案 »

  1.   

    就和myProtocol.car_info一样 只是可以写非法的变量字符 变量等等
      

  2.   

    给对象添加新属性myProtocol["person_info"]这些写行,myProtocol.person_info也行,用[]操作符多用于属性名称是变量值的多,而不能用点操作符如
    var attr='myattr'
    myProtocol[attr]={xx:111}
      

  3.   

    myProtocol["attr"]=123;
    myProtocol.attr=123; 这两个是等价的。
    上面的好处是可以动态的处理属性值。例如遍历深拷贝一个对象。
      

  4.   

    json的访问形式而已,就像他第一个var myProtocol = {name:"proto"};
    如果 myProtocol ["name"]=123,那么myProtocol 就变成 myProtocol = {name:"123"};
    json访问的两种形式.小数点访问,限制比较多,[]中括号访问,比较灵活,[]内可以放字符串,可以放变量;
    就像
    var json={name:123}
    function   ceshi(str){
            console.log(json[str])
    }执行ceshi("name"),则控制台会输出123
      

  5.   

    parm['key'] 和 parm.key 在js里是相同的。
    不过个人觉得应该有个好习惯
    用map的方式来表示你读取的一些json数据
    用.key的方式来表示,你代码里自己定义的一些变量属性
      

  6.   

    var a={a:1,b:2}
    var c="b";
    console.log(a[c])
    中括号的可以用变量取