对象
对象:(是一种引用类型的数据,存储在堆内存中)
对象是一组属性和方法/功能的集合
使用大括号{}创建空对象 属性名和属性值用冒号隔开 多组属性之间用逗号隔开 属性名中引号可加可不加,有特殊字符时必须加;
一、使用字面量创建对象
例1:
// 使用对象字面量创建对象[object] // 创建一个手机对象 var phone={}; console.log(phone);
例2:
// 创建一个手机对象 //{属性名:属性值,...} var phone={ color:'red', brand:'apple', size:5.7, price:2000, 'made-in':'china' }; console.log(phone);
例3:
// 创建一个部门对象,属性有部门编号、名称、员工数量 var department={ did:10, dname:'dev', count:5 } console.log(department); // 创建一个员工对象,属性有编号、姓名、性别、生日、工资、所在部门 var emp={ eid:2, sex:1, ename:'tmo', birthday:'1993-1-1', salary:10000, deptId:10 } console.log(emp);
二、使用内置构造函数创建对象
例1:
// 创建一个空对象 var lixian=new object(); // 添加属性 book.id=103; book.name='红楼梦'; book['price']=30; book['publish']='人民邮电出版社'; console.log(book);
例2:
// 创建一个汽车对象,属性有编号、品牌、颜色、价格 var car=new object(); car.cid='101'; car.brand='奇瑞QQ'; car.price=40000; car.color='red'; console.log(car) // 创建一个电脑对象,属性有型号、品牌、尺寸、产地 var computer=new object(); computer['id']='thinkpad'; computer['brand']='联想'; computer['size']=15.6; computer['madeIn']='china'; console.log(computer);
三、访问对象中的属性
例1:
// 访问对象中的属性 // 如果要获取的属性不存在,属性值是undefined var emp={ eid:3, ename:'kata', sex:0, birthday:'1998-2-5', salary:8000 }; console.log(emp.ename); console.log(emp['birthday']);
例2:遍历对象中的属性(for-in)
// 获取到每一个属性名,进而获取属性值 // key表示对象中的每一个属性名,in后的表示要遍历的对象
// 获取属性名
for(var key in emp){ console.log(key); }
// 获取属性名和值
for(var key in emp){
console.log(key+'-----'+emp[key]);
}
例3:
// 练习:创建一个商品的对象,包含编号、标题、价格 是否在售 商品库存量 使用for-in遍历所有属性 var product={ pid:18, title:'dell', price:4000, isonsale:1, stockCount:88 }; console.log(product); for(var key in product){ console.log(key+'----'+product[key]); }
例4:检查对象中是否有自己的属性
对象.hasOwnProperty('ename'),有——true, 没有——false
// 判断对象中是否有salary属性
console.log(emp.hasOwnProperty('salary'));
如果一个属性的属性值是undefind,说明属性不存在
// true——不存在 false——存在 console.log(emp.deptId===undefind);
例5:匿名函数调用
// 创建一个人对象 // 对象中的方法:匿名函数调用 【对象.属性】/【this.属性】 var person={ name:'tom', age:18, sex:'男' say:function(){ //console.log('我是kata,性别女,年龄28'); // this 指代当前的对象,也可以用person.name console.log('我叫'+ this.name); } }; // 调用对象中的方法 person.say();
例6:
// 创建一个圆对象,添加属性半径、圆周率、添加方法计算周长(getLength)和面积(getArea),返回圆的周长的面积。 var circular={ r:3; PI:3.14; getLength:function(){ return 2*this.PI*this.r; } getArea:function(){ return this.PI*this.r*this.r; } } var res1=circular.getLength();
console.log('周长'+res1); var res2=circular.getArea();
console.log('面积'+res2);