对象
对象的概念:对象是一个复杂的数据,是在一个大的内存空间中,存储多个小的内存空间。
定义对象
var obj = {
name:"张三",
age:12
}
对象中的值是由键值对组成的,而键值对是指在描述一个事物的时候,需要一个名字,对应一个值,例如:
姓名:张三 // 姓名是键,张三是值
width:100px // width是键,100px是值
border=1 // border是键,1是值
定义有数据的对象,键和值之间使用冒号隔开,键值对之间使用逗号隔开:
var obj = {
name:"张三",
age:12
}
对象中的键值对没有上限,可以有任意多个。对象中的键都是字符串,只是正常情况下可以省略引号,但如果键中含有连字符就不能省略引号了。
var obj = {
"name":"张三",
age:12,
height:180,
"province-name":"山东省"
};
console.log(obj);
从输出的结果中能看到,书写顺序和显示的顺序是不同的,因为对象中的键值对是没有顺序的。
对象的基本操作
访问对象中的值:
对象.键 (这种方式属性名不用加引号)
对象[键] (这种方式属性名必须加引号)
例如:
var obj = {
name:"张三",
age:12
};
console.log(obj.name);
console.log(obj["age"]);
设置键值对
对象.键 = 值
对象[键] = 值
如果本来的对象中拥有相对应的键值对,则是修改原来键值对的值。若原本对象中不存在这样的键值对,则在对象中添加所写键值对。
删除键值对
delete 对象.键
delete 对象[键]
对象的遍历
对象的遍历就是将对象中的每一个值都访问一次,他的语法如下:
for(var attr in obj){
# 这里的attr代表对象属性名
# obj表示这个对象
}
例如:
var obj = {
name:"张三",
age:12,
height:180
};
for(var i in obj){
// 这里的i表示对象的属性名,是一个字符串
console.log(i,obj[i]);
}
注意:遍历对象时,输出对象中的值,必须使用对象[代表键的变量]这种形式来输出。
方法的概念
对象中值的类型是没有限制的,可以是任意类型。当值不是函数的时候,我们将这个键值对叫做对象的属性,当值是一个函数的时候,我们将这个键值对叫做对象的方法。
var obj2 = {
name:'王五',
study:function(){
console.log("在学习");
}
}
console.log(obj2);
name就是对象obj2的属性,study就是对象obj2方法。方法的访问和属性是一样的。