对象

对象:(是一种引用类型的数据,存储在堆内存中)

             对象是一组属性和方法/功能的集合

     使用大括号{}创建空对象  属性名和属性值用冒号隔开   多组属性之间用逗号隔开   属性名中引号可加可不加,有特殊字符时必须加;

一、使用字面量创建对象

例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);

 

posted @ 2019-10-25 15:54  Alieen617  阅读(191)  评论(0编辑  收藏  举报