对象的定义:
对象是一个包含相关数据和方法的集合(通常由一些变量和函数组成,我们称之为对象里面的属性和方法)。
写法:
var person={}; 例如下边就是一个对象:
1 var persion={
2
3 name:["bob","smith"],
4 age:32,
5 gender:"man",
6 interests:['music','swim'],
7
8 bio:function (){
9
10 alert(this.name[0]+" "+this.name[1]+" "+"is"+" " + this.age +" "+"years old."+" "+"He"+" "+ "likes"+" "+this.interests[0] )
11 },
12
13 greeting:function() {
14 alert("Hi! I'm " + this.name[0])
15 }
16
17
18 }
一个对象由许多的成员组成(成员类型包括字符串,函数,数组,数字等组成),每一个成员都拥有一个名字(像上面的name、age),和一个值(如['Bob', 'Smith']、32)。每一个名字/值(name/value)对被逗号分隔开,并且名字和值之间由冒号(:)分隔 。
对象取值
直接去取对象里的成员名就可以,例如
1 persion.name[0]; //取对象persion里边name里的第一项 也就是"bob"字符串。
2 persion.age; //取对象persion里边age里值,也就是数字32.
3 persion.bio(); //调用对象里边persion里边的bio函数。
给对象赋值
直接在对象下边进行赋值就可以,例如:
1 persion.name[0]="李敏"; //给对象persion里边name里的第一项 也就是"bob"字符串替换成"李敏"字符串。
2 persion.age=45 //给对象persion里边age换值,也就是数字32替换成45.
3 persion.bio(); //调用对象里边persion里边的bio函数。
给对象添加新的成员
代码如下:
1 persion["str"]="string"; //给对象persion 增加字符串成员str。
2
3 persion["shuzu"]=["1","2"]; //给对象persion 增加数组成员shuzu
4
5 persion.fangfa =function () {alert("欢迎")} //给对象persion 增加函数成员fangfa
6
7 persion.fangfa() //调用函数fangfa
取用户的输入值的时候 我们一般用input框来取值然后赋值到对象中,如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
</head>
<body>
<input type="text" id="wenben"/>
<input type="button" value="按钮" id="anniu"/>
</body>
<script language="JavaScript1.2">
var persion={
name:["bob","smith"],
age:32,
gender:"man",
interests:['music','swim'],
bio:function (){
alert(this.name[0]+" "+this.name[1]+" "+"is"+" " + this.age +" "+"years old."+" "+"He"+" "+ "likes"+" "+this.interests[0] )
},
greeting:function() {
alert("Hi! I'm " + this.name[0])
}
}
persion["str"]="string"; //给对象persion 增加字符串成员str。
persion["shuzu"]=["1","2"]; //给对象persion 增加数组成员shuzu
persion["fangfa"]=function () {alert("欢迎")} //给对象persion 增加函数成员fangfa
// persion.fangfa() //调用函数fangfa
var button=document.getElementById("anniu");
button.onclick=function () {
persion["user"]=document.getElementById("wenben").value; //创建persion的一个成员user的值是用户在input文本框里输入的值
alert(persion.user)
}
</script>
</html>
this的用法:
关键字"this"指向了当前代码运行时的对象,在上边的代码中,this代表了persion这个对象,当有多个对象的时候 可能一个对象中包含有相同的成员名 比如name值 这时候这个this保证了当代码的上下文(context)改变时变量的值的正确性
JSON
定义:
JSON 是一种按照JavaScript对象语法的数据格式,这是 Douglas Crockford 推广的。虽然它是基于 JavaScript 语法,但它独立于JavaScript,这也是为什么许多程序环境能够读取(解读)和生成 JSON。
结构:
我们已经可以推测出 JSON 对象就是基于 JavaScript 对象,而且这几乎是正确的。您可以把 JavaScript 对象原原本本的写入 JSON 数据——字符串,数字,数组,布尔还有其它的字面值对象。这允许您构造出一个对象树,如下:
1 var superhero={
2 "squadName" : "Super hero squad",
3 "homeTown" : "Metro City",
4 "formed" : 2016,
5 "secretBase" : "Super tower",
6 "active" : true,
7 "members" : [
8 {
9 "name" : "Molecule Man",
10 "age" : 29,
11 "secretIdentity" : "Dan Jukes",
12 "powers" : [
13 "Radiation resistance",
14 "Turning tiny",
15 "Radiation blast"
16 ]
17 },
18 {
19 "name" : "Madame Uppercut",
20 "age" : 39,
21 "secretIdentity" : "Jane Wilson",
22 "powers" : [
23 "Million tonne punch",
24 "Damage resistance",
25 "Superhuman reflexes"
26 ]
27 },
28 {
29 "name" : "Eternal Flame",
30 "age" : 1000000,
31 "secretIdentity" : "Unknown",
32 "powers" : [
33 "Immortality",
34 "Heat Immunity",
35 "Inferno",
36 "Teleportation",
37 "Interdimensional travel"
38 ]
39 }
40 ]
41 }
取值:
为了访问对象中的对象,您只需简单地链式访问(通过属性名和数组索引)。例如,访问 superHeroes 对象中的 members 数组对象的第二个元素的 powers 数组对象的第三个元素,您可以这样做:
alert(superhero.members[0].powers[0])
其他注意事项
- JSON 是一种纯数据格式,它只包含属性,没有方法。
- JSON要求在字符串和属性名称周围使用双引号。 单引号无效。
- 甚至一个错位的逗号或分号就可以导致 JSON 文件出错。您应该小心的检查您想使用的数据(虽然计算机生成的 JSON 很少出错,只要生成程序正常工作)。您可以通过像 JSONLint 的应用程序来检验 JSON。
- JSON 可以将任何标准合法的 JSON 数据格式化保存,不只是数组和对象。比如,一个单一的字符串或者数字可以是合法的 JSON 对象。虽然不是特别有用处……
- 与 JavaScript 代码中对象属性可以不加引号不同,JSON 中只有带引号的字符串可以用作属性。