form 转json的问题··········

下面是将表单数据转换成json对象
其中的 o[this.name] 老不理解是什么意思?求大神指教!
var 0={};表示声明一个json对象
o[this.name]是什么意思啊?这是什么写法啊?

     // 将表单数据转换成json对象
    $.fn.serializeObject = function() {    
       var o = {};    
       var a = this.serializeArray();
       $.each(a, function() {
           if (o[this.name]) {
               if (!o[this.name].push) {
                   o[this.name] = [o[this.name]];
               }
               o[this.name].push(this.value || '');
           } else {
               o[this.name] = this.value || '';
           }    
       });
       return o; 
    };
 var o={a:"2"}

o["a"]等价于o.a
也就是o[this.name] 就是取值,key是this.name的值

o[this.name],其中o就是你转换后的对象,那么可以通过对应的字段名访问,this.name就是一个值,这个值在 o 中存在同名的字段,然后取出对应的值

o是对象,取属性可以使用点操作符号也可以使用[]操作符号,点操作符号需要明确属性,不能是变量,如o.a等价于o['a'],[]可以使用变量获取

serializeArray()函数用于序列化一组表单元素,将表单内容编码为一个JavaScript数组。

serializeArray()函数常用于将表单内容序列化为JSON对象,以便于被编码为JSON格式的字符串。

该函数会将可用于提交的每个表单控件封装成一个Object对象,该对象有name和value属性,对应该表单控件的name和value属性。然后将这些Object对象封装为一个数组并返回。图片说明

看一下控制台输出的 : 就是name,value键值对,此处的this.name 就是 a的name,o[this.name] 可以拆成var oname = this.name;o[oname]

参考 将Form数据转化成Json对象