1、对象分类
对象是一组属性(property)和方法(method)的集合
内置对象:JS提供的
宿主对象:更具JS不同的环境划分
自定义对象:自己创建的对象
2、创建自定义对象--对象直接(字面)量
{}:大括号创建空对象
属性和属性之间用逗号隔开
属性名中的引号可加可不加,如果有特殊字符,必须添加引号
var emp={eid:'10086',ename:'tom',sex:'m',birthday:'1995-12-24',salary:7897.98,dept:'开发'};
3、使用内置构造函数创建对象
写法一:
//使用内置构造函数
var book=new Object(); //创建空对象
book.bid=1001; //添加属性
book.title='三国演义';
book.price=50;
book.author='罗';
console.log(book);
写法二:
var car=new Object();
car['brand']='特斯拉';
car['color']='red';
car['price']='999999';
console.log(car);
4、获取对象的属性值
写法一:对象.属性名
写法二:对象[属性名]
5、遍历对象中的属性
//遍历对象中的属性
var emp={
eid:2,
ename:'tom',
sex:0,
age:20,
birthday:'1995-12-24',
salary:8000,
daptid:20
};
//获取对象中每一个属性名及属性值
for(var key in emp){
console.log(key+':'+emp[key]);
}
注意:*获取对象中属性值只能用对象[属性名],不可用对象.属性名
*for in只能遍历自定义的属性,无法遍历预定义的属性(JS自动添加)的属性
6、检测对象中的属性
方法一:‘属性名’ in 对象 ,若返回值为true,则存在,若返回值为false,则不存在
方法二:对象.hasOwnProperty(‘属性’),若返回值为true,则存在,若返回值为false,则不存在
方法三:对象.属性===undefined,若返回值为true,则不存在,若返回值为false,则存在
var user={
id:18,
name:'tom',
pwd:'123456',
phone:'12345678909',
email:'123@163.com',
}
console.log('id' in user);
console.log(user.hasOwnProperty('id'));
console.log(user.id===undefined);
7、对象中的方法
//创建对象,添加属性和方法
var person={
name:'tom',
age:20,
sex:'男',
//说话的方法
say:function(){
console.log('我是'+this.name);
},
song:function(){
console.log('我会唱歌');
}
}
//调用对象中的方法
person.say();
person.song();