对象是引用类型数据,对象是一组属性和方法的集合。
? 对象形容例如:一部手机{属性有品牌、颜色、内存大小、屏幕尺寸.}? {方法有打电话、玩游戏、看视频、听音乐....}
万物皆对象!
1.JS的对象
自定义对象:自己创建的对象
内置对象:JS提供的对象
宿主对象:根据不同的执行环境划分
2.使用对象字面量创建对象
创建一个手机对象,包含的属性有品牌、颜色、屏幕尺寸、产地
//对象字面量
var phone = {
name: '华为',
color: 'blue',
pingmu: '10寸',
'chan-di': '深圳' //有特殊字符必须加引号 其余可加可不加
} //{name:'华为'}name是属相名 '华为'是属性值
//访问属性 访问属性能用点.就用点. 不行再用中括号
console.log(phone.name); //华为
console.log(phone.hhh); //不存在的属性 打印出undefined
console.log(phone['chan-di'], phone['color']) //中括号可以打印带特殊符号的属性 用中括号属性必须带引号
phone.color = '白色'; //修改属性值 格式:变量名.属性名=‘添加属性值’
console.log(phone); //{name: "华为", color: "blue", pingmu: "10寸", chan-di: "深圳"}
3.使用内置构造函数创建对象
new? Object()? ?返回一个空对象 ,需要单独添加每一个属性
构造函数? 使用new来调用函数? ?返回对象
var laptop =new Object();
//需要单独添加每一个属性
laptop.id=2;
laptop.name='小米Air';
laptop['price']=4399;
console.log(laptop);//{id: 2, name: "小米Air", price: 4399}
4.遍历属性
通过循环的方式? 访问对象中的每一个属性
for (var k in 对象) {
?k代表每一个属性名
?对象[k] 代表属性名对应属性值
}
var emp = {
eid: 1,
ename: '哈哈哈哈',
sex: '男',
salary: 9000
}
//遍历
for (var k in emp) {
//k代表属性名
//访问属性值 emp[k] 不能用点来链接,用中括号,不然会认为是属性名了
console.log(k, emp[k]);
}
创建对象,包含一个成绩,遍历对象属性得到每个对象 计算出总成绩 同时计算平均成绩
实例代码展示
var cj = {
yuwen: 80,
shuxue: 88,
yingyu: 70,
zhnegzhi: 91
}
var sum = 0; //存总成绩
var count = 0; //遍历次数
//遍历属性得到的每一个成绩
for (var n in cj) {
//console.log(n,cj[n]);
//把每个成绩加到sum
sum += cj[n];
//遍历一次加1
count++;
}
console.log(sum, count, sum / count);
5.方法
对应的是一个函数,需要调用
var fangfa={ //对象名自己定义
play:function(){
this //指向调用方法的对象
}
}
fangfa.play();//调用方法
var fangfa={
//属性
name:'华为',
//方法:对应的是一个函数,具备函数所有特点
play:function(){
//this指向调用方法的对象访问 this跟调用有关系
console.log(this.name+'这是一个方法');
//console.log('这是一个方法');//每一个方法用逗号隔开
// console.log(fangfa.name+'这是一个方法');//不建议这样写
},
work:function(){
console.log(this.name+'这也是一个方法');
}
}
//调用 先找到名称是什么
fangfa.play();
fangfa.work();
//console.log 用console下的log方法打印结果 js内部给我们的方法
创建一个圆的对象,属性有半径,圆周率,添加计算周长和计算面积的两个方法将计算的结果返回
?代码实例:
var yuan={
//属性
r:3,
pi: 3.14,
//方法
zhouc:function(){
return this.r*this.pi*2;
},
mianji:function(){
return this.pi*this.r*this.r;
}
}
//console.log(yuan);
console.log(yuan.zhouc());
console.log(yuan.mianji());
|