使用构造函数的目的
批量创建对象
使用
- 构造函数也是函数
function
- 构造函数 函数名首字母需要大写(规范)
- 构造函数 必须和
new
一起使用创建对象 (批量)
//声明函数
function Person(nameValue) {
this.name = nameValue
}
//创建实例对象
// new 出来的对象称之为实例对象
let first = new Person('Liao')
let Second = new Person('Xin')
优点
- 不需要手动声明对象和返回对象
- 有具体的类型, 类型是当前的构造函数名称(例:Person)
注意点:必须配合new
使用
new的时候做了四件事情
- 创建一个新对象(在内存中开辟新空间)
- 将
this
指向创建的新对象 - 执行构造函数内代码(本质上:给新对象添加属性)
- 把创建的新对象给返回
实例(对象):构造函数创建出来的对象
拓展
通过对象字面量批量创建
let obj1 = {name: '小黑'}
let obj2 = {name: '小白'}
let obj3 = {name: '小红'}
let obj4 = {name: '小绿'}
不足
需要创建多个有着共同属性的对象会非常麻烦
工厂函数
批量创建对象
function createPerson(nameValue) {
// 1.创建一个新对象
let person = {} // 等价new Object()
// 2.给对象添加对应的属性
person.name = nameValue
// 3.返回该对象
return person
}
let third = createPerson('Shang')
let fourth = createPerson('Li')
不足
- 需要手动创建对象和返回这个对象
- 创建出来的对象类型统一是
object
, 无法识别对象的具体类型
发表回复