对象
1.包括属性和方法,属性是事物特征,方法是事物行为。比如手机的尺寸、颜色、重量为属性;打电话、发信息、浏览网页、打游戏是手机的方法。
2.创建对象的三种方法
(1)字面量
- 对象中的属性和方法采用键值对形式,键 属性名 : 值 属性值
- 多个属性或方法用逗号隔开
- 方法后面为一个匿名函数
- 调用对象属性:对象名.属性名或者对象名[‘属性名’]
- 调用对象方法:对象名.方法名()
var obj = {
name:' 张继',
age: 18,
sex: '男',
sayHi:function() {
console.log('hi~');
}
}
console.log(obj.name);
console.log(obj['sex']);
obj.sayHi();
// 字面量创建对象
var kk = {
name: '可可',
type: '阿拉斯加',
age: 5,
color: '棕红色',
bark: function() {
console.log('汪汪汪');
},
showFilm: function() {
console.log('一条狗的使命');
}
}
console.log(kk.name);
console.log(kk['color']);
kk.showFilm();
kk.bark();
(2)利用new Object创建对象
利用 = 给对象添加属性和方法,各属性与方法之间用;隔开。
// new Object创建对象
var mr = new Object();
mr.name = '鸣人';
mr.sex = '男';
mr.age = 19;
mr.skill = function() {
console.log('影分身术');
};
console.log(mr.name);
console.log(mr['sex']);
mr.skill();
(3)利用构造函数创建对象
构造函数:由于有些对象具有相同的属性,为了避免代码重复,将公共属性抽象出来,封装在一个函数里,泛指一大类(class)。
- 构造函数名字首字母要大写
- 我们构造函数不需要return 就可以返回结果
- 我们调用构造函数必须使用new
- 我们只要new Star() 调用函数就创建一个对象
- 我们的属性和方法前面必须添加this
创建对象,利用new关键字,这个过程称为对象实例化。
new在执行时会做四件事情
- 在内存中创建一个新的空对象。
- 让this指向这个新的对象。
- 执行构造函数里面的代码,给这个新对象添加属性和方法。
- 返回这个新对象(所以构造函数里面不需要return )。
// 利用构造函数创建王者荣耀英雄对象
function Hero(uname,type,blood) {
this.name = uname;
this.type = type;
this.blood = blood;
this.attack = function(attack) {
console.log(attack);
}
}
var lp = new hero('廉颇','力量型',500);
console.log(lp.name);
console.log(lp['blood']);
lp.attack('远战');
var hy = new hero('后羿','射手型',100);
console.log(hy.name);
console.log(hy['type']);
hy.attack('近战');
遍历对象
//遍历对象
for(var k in obj) {
console.log(k); //键 属性名
console.log(obj[k]); //属性值
}