0. 目标
能够说出为什么需要对象
能够使用字面量创建对象
能够使用构造函数创建对象
能够说出new的执行过程
能够遍历对象
1. 对象
1.1 什么是对象?
万物皆对象,对象是一个具体的事物,看得见摸得着的实物。
JS中,对象是一组无序的相关属性和方法的集合,所有事物都是对象
对象由 属性 和 方法 组成
属性:事物的特征,常用名词 方法:事物的行为,常用动词
1.2 为什么需要对象?
保存一个对象的完整属性以及行为
2. 创建对象的三种方式
- 字面量创建对象
就是用 { } 创建对象
使用对象
对象名.属性名 obj.uname;
对象名['属性名'] obj['age'];
对象名.方法名() obj.sayHi()
- new Object 创建对象
- 使用构造函数
前面两种方法一次都只能创建一个对象
构造函数就是把对象里面一些相同的属性和方法抽象出来封装到函数里面,用来初始化对象
function Star(name, age, sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing = function(sang){
console.log(sang);
}
}
var ldh = **new** Star('ldh', 19, 'man');
ldh.sing('冰雨'); // 冰雨
2. 变量、属性、函数、方法的区别
2.1 变量和属性
变量和属性的相同,他们都是用来存储数据的
变量单独声明并赋值,使用时直接写变量名,单独存在
属性存在在对象里面不需要声明,使用时必须是 对象.属性
2.2 函数和方法
都是实现某种功能,做某件事
函数单独声明并调用 函数名() 单独存在
方法存在在对象里面,调用时 对象.方法()
3. 构造函数和对象
构造函数相对于一个模板 new创建对象,是以构造函数为模板,对象的实例化
4. new关键字
new构造函数可以在内存中创建一个空的对象
this就会指向刚才创建的空对象
指向构造函数里面的代码,添加属性和方法
返回这个新对象,所以不需要return
5. 遍历对象
for...in 可以遍历对象和数组
for(var k in obj){
console.log(obj[k]);
}