目录
一、什么是对象?
对象是一个具体事物。比如这个手机、这根铅笔就是对象。
在js中:对象是一组无序的相关属性和方法的集合,所有事物都是对象,比如字符串、数组、数值、函数等;
二、对象组成
对象是由属性和方法组成的。
属性:事物的特征,在对象中用属性来表示(名词)
方法:事物的行为,在对象中用方法来表示(动词)
三、为什么需要对象
因为js中对象表达结构更清晰,强大
四、创建对象的三种方式
1. 字面量 : {}
var obj = {}; //创建了一个空的对象
var obj = {
name: '刘朋',
age: 18,
sex: '男',
sayHi: function() {
console.log('hi~');
}
}
注意:
1) 里面的属性或者方法采用键值对的形式来创建
2) 多个属性之间用逗号来分隔
3) 方法冒号后面跟的是匿名函数
使用对象
1) 调用对象的属性:对象名.属性
console.log(obj.name);
2) 调用对象的属性:对象名['属性']
console.log(obj['age']);
3) 调用对象的方法:对象名.方法名
obj.sayHi();
2. new Object
利用new Object 方法创建对象
var obj = new Object(); //创建了一个空对象
obj.uname = '张三';
obj.age = 27;
obj.sex = '男';
obj.sayHi = function() {
console.log('我会说话');
}
对象的属性使用:
console.log(obj.uname);
console.log(obj['age']);
console.log(obj.sex);
对象的方法使用:
obj.sayHi();
注意
1、 每一个属性之间以分号隔开
2、采用的是 等号赋值的方法添加对象的属性和方法
3. 构造函数创建
为什么使用构造函数创建对象:因为前两种每次只能创建一个对象,很多代码都是重复相同的,这时候可以通过函数的封装。
构造函数封装的不是普通代码,而是对象!把对象里面相同的属性和方法抽象出来封装到函数里面。
构造函数语法格式:
function 构造函数名() {
}
new 构造函数名(); // 构造函数的调用
1、创建四大天王的对象。公共属性和方法:姓名,年龄、性别、唱歌
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(song) {
console.log(song);
}
}
var ldh = new Star('刘德华', 18, '男'); //调用函数返回的是一个对象
console.log(ldh);
console.log(ldh.name);
console.log(ldh['age']);
console.log(ldh['sex']);
ldh.sing('冰雨');
var zxy = new Star('张学友', 19, '男'); //调用函数返回的是一个对象
console.log(zxy);
zxy.sing('李香兰');
注意:
1)构造函数的首字母要大写
2)构造函数不需要 return 就可以返回结果
3)调用构造函数必须使用 new 关键字
4)属性和方法前面必须要使用this
new 关键字的执行过程
1、在内存中创建一个空的对象
2、所有的this指向这个空的对象
3、执行构造函数里面的代码,给这个空的对象添加属性和方法
4、返回这个对象(所以构造函数中不需要return返回结果)
五、对象的遍历
使用 for in 遍历对象
语法格式:
for (变量 in 对象名) {
}
例如:
var obj = {
name: '刘德华',
age: 18,
sex: '男'
}
for (var k in obj) {
console.log(k); // k是变量,输出的是属性名
console.log(obj[k]); //输出的是属性值
}