js基础 对象

 一、js中数据类型分为
 ①值类型(存储在栈内存中)
 ②引用类型,也可以称为对象型(存储在堆内存中)

(1)举例
杯子对象:特定的某一个杯子。
 颜色,容量,品牌,形状...--->属性
 装水,装饮料....--->功能(方法)
 某个人对象
 身高,体重,颜值,性别,星座...--->属性
 学习,工作,做饭......--->功能(方法)
总结:对象是由一组属性(property)和方法(method)的集合。 

(2)分类
js中的对象分为:内置对象(ES原生对象),宿主对象,自定义对象。

二、创建对象
(1)对象字面量创建对象

//使用对象字面量创建
var book = {
  bname:'盗墓笔记',
  author:'南派三叔',
  pub_time:'2015-3-18',
};
console.log(book);

使用大括号创建对象
 属性名和属性值之间用冒号隔开
 多组属性之间用逗号隔开
 注意:如果对象中包含-,空格,需要使用引号包起来。

(2) 通过new Object创建对象
new Object() 创建的是一个空对象,括号中没有值,可以去掉。

需要单独往对象添加属性
laptop.color = 'black';
laptop['size'] = '15英寸';   //中括号加属性,需要加引号
获取对象中的属性
laptop.color  或者  laptop['color']

注意:如果访问的属性不存在,返回undefined.

三、遍历(枚举)对象属性

for(var proName in emp){
  //proName  所要遍历的属性名
  //emp  要遍历的对象
  //要通过属性名proName访问属性值--->emp[proName]
};

注意:使用for-in只能遍历对象中自定义的属性,不能遍历预定义(对象本身自带)的属性。 

四、检测对象中是否含有属性(三种方式)
①'属性' in 对象
 ②对象.hasOwnProperty('属性')
 ③对象.属性 === undefined //不存在--->true,存在--->false 

//检测对象中是否含有某个属性
var person = {
  name:'David',
  gender:'男',
  age:20
};
//检测属性:检测name属性是否存在person对象中
//方法一:使用in关键字
console.log('name' in person);  //true
//方法二:使用hasOwnProperty关键字
console.log(person.hasOwnProperty('gender'));  //true
//方法三:使用undefined,判断属性是否为undefined
//不存在--->true,存在--->false
console.log(person.age === undefined);   //false

五、对象中的方法

var person = { sayHi: function(){  }  };
  在成员方法中访问成员属性  this.name

六、相关练习
(1)创建分页对象page,对象中含有总数据量(total),每页大小(size),当前页(pno),上一页(prev:'<'),下一页(next:'>').添加颜色属性(color:'blue') 修改当前页(pno:2)

var page = {
  total:43,
  size:9,
  pno:1,
  prev:'<',
  next:'>',
};
page.color = 'blue';
page.pno = 2;
console.log(page);
//访问不存在的属性
console.log(page.name);   //undefined

(2)创建汽车对象(品牌brand,价格price,颜色color,产地country,类型type),使用for-in遍历对象。

var car = {
  brand:'法拉利',
  price:3000000,
  color:'red',
  country:'意大利',
  type:'跑车'
};
for(var proName in car){
  console.log(proName + ':' + car[proName]);
};

(3)创建一个对象圆(circle),添加属性半径和圆周率,添加方法计算圆的周长和面积

var circle = {};
circle.r = 5;
circle.PI = 3.14;
circle.getLength = function(){
  console.log(2* this.PI * this.r);
};
circle.getArea = function(){
  console.log(this.PI * this.r * this.r);
};
circle.getLength();
circle.getArea();
上一篇: js基础 全局函数
下一篇: js基础 数组(一)
作者邮箱: 203328517@qq.com