JavaScript是一种基于对象(Object-based)的编程语言,它的本质实际上是面向对象。面向对象的语言的特点是它们都有类的概念,通过类可以创建任意多个具有相同属性和方法的对象。但是在JavaScript中没有类的概念,通常称JavaScript中的对象为原型对象,我们可以直接通过Object来创建对象。例如下面的代码:
var person = new Object(); person.name = "张三"; person.age = 20; person.say = function(){ alert(this.name+","+this.age); }
在上面的代码中,通过Object简单的创建了一个person
对象,随后为person
对象设置了2个属性和1个方法。
通过上面的方式创建的对象,带来的最大问题是由于没有类的约束,无法实现对象的重复利用,并且没有一种约定,在操作是会带来问题。
Json对象
我们不能够在网络中传输一个JavaScript对象,在网络中只能够传输字符串。一个可行的传输对象的方法是将对象编写为XML格式进行传输,例如:
<?xml version="1.0" encoding="utf-8"?> <preson> <id>1</id> <name>张三</name> <age>20</age> </person>
但是使用XML格式进行数据传输的时候,在传输过程中会产生大量的附加标签字符串,这样的传输效率明显不高。为了解决这些问题,人们研究出了另一种字符串对象的格式:Json对象格式。
Json的全称是javascript simple object notation,是一种简单的数据交换格式。Json对象就是javascript对象,但是它省略了xml中的标签,而是通过{}来完成对象的说明。
Json格式通过属性名:属性值
来定义属性,不同的属性通过逗号(,
)来分隔,最后一个属性不需要添加逗号。例如下面的代码定义了一个Json格式的person
对象。
var person = { name : "张三", age:23, say:fuction(){ alert(this.name+","+this.age); } }
要调用person
对象的属性和方法和普通的JavaScript对象使用的方法相同,例如:
// 调用person的say方法 person.say();
我们通过Json也可以创建对象数组,创建的方式和JavaScript的数组一样。
var ps = [ {name:"Leon",age:22}, {name:"Ada",25} ];
在完成数组的创建之后,我们也可以遍历数组中的Json对象。
for(var i = 0; i < ps.length; i++){ alert(ps[i].name); }