学习目标:1. 掌握基于构造函数创建对象,理解实例化过程
2.掌握对象数组字符数字等类型的常见属性和方法,便捷完成功能
深入对象
(一)创建对象三种方式
1.利用对象字面量创建对象
const o = {
name:'佩奇'
}
2.利用new Object创建对象
const o =new Object({name:'佩奇'})
console.log(o) //{name:'佩奇'}
3.利用构造函数创建对象
(二)构造函数
含义:是一种特殊函数,用来初始化对象
使用场景:常规{}创建一次只能创建一个对象,想要创建多个对象可用构造函数来快速创建多个类似对象
(两个约定:命名以大写字母开头,只能由new操作符来实现)
//创建小明的对象
const Ming = {
name:'小明',
age:'6',
gender:'男'
}
//创建爸爸的对象
const Ba = {
name:'baba',
age:38,
gender:'男'
}
//创建妈妈的对象
const Ma = {
name:'mama',
age:36,
gender:'女'
}
//这些对象属性都一样,仅仅是属性值不一样,可以将相同部分抽取出来
function Person(name,age,gender) {
this.name = name //将形参name挂给了name属性
this.age = age
this.gender = gender
}
//创建小明对象
const Ming = new Person('小明',6,'男')
//创建爸爸的对象
const Ba = new Person('爸爸',38,'男')
//创建妈妈的对象
const Ma = new Person('妈妈',36,'女')
//使用new关键字调用函数的行为被称为实例化
1,实例化构造函数时没有参数时可以省略()
2,构造函数内部无需写return,返回值即为新创建的对象
3,new Object() 和 new Date()也是实例化构造函数
(二)实例化执行过程
1.创建新的空对象
2.构造函数this指向新对象
3.执行构造函数代码,修改this,添加新的属性
4.返回新对象
function Goods(name,price,count) {
this.name = name
this.price = prce
this.count = count
}
//构造函数必须调用才会执行
Goods()//函数调用,仅仅是调用了函数,并没有创建对象
new Goods()//函数调用并创建对象,但这对象是空的,this指向这个空对象
new Goods('小米',7800,78) //传入实参给对应形参,添加新的属性
{
name:'小米',
price:7800,
count:78
}