构造函数
构造函数是一种特殊的函数, 主要用来初始化对象
可以通过构造函数来快速创建多个类似的对象
使用new
关键词调用的函数行为被称为实体化
举个例子:
不使用构造函数:
js
// 创建洱海的对象
const Erhai_lake = {
Name: "洱海",
Age: 18,
Gender: "男"
}
// 创建柒月的对象
const Qi_Month = {
Name: "柒月",
Age: 18,
Gender: "女"
}
// 创建小良的对象
const XiaoLiang = {
Name: "小良",
Age: 18,
Gender: "男"
}
使用构造函数:
js
function ELake(Name, Age, Gender) {
this.Name = Name
this.Age = Age
this.Gender = Gender
}
// 创建洱海的对象
const Erhai_lake = new ELake("洱海", 18, "男")
// 创建柒月的对象
const Qi_Month = new ELake("柒月", 18, "女")
// 创建小良的对象
const XiaoLiang = new ELake("小良", 18, "男")
警告
- 构造函数的命名以大写字母开头
- 构造函数只能由
new
操作符执行 - 构造函数内部写
return
是无效的
实例成员
通过构造函数创建的对象, 被称为实例对象, 实例对象中的属性和方法称为实例成员(实例属性和实例方法)
警告
- 为构造函数传入参数, 创建结构相同但值不同的对象
- 构造函数创建的实例对象彼此独立互不影响
js
function ELake(Name) {
this.Name = Name
}
const Erhai_lake = new ELake("洱海")
const Qi_Month = new ELake("柒月")
// 实例属性
Erhai_lake.Name = "Erhai_lake"
// 实例方法
Erhai_lake.sayHi = () => {
console.log("Hi~")
}
console.log(Erhai_lake)
console.log(Qi_Month)
console.log(Erhai_lake === Qi_Month)
静态成员
构造函数的属性和方法被称为静态成员(静态属性和静态方法)
警告
- 静态成员只能构造函数来访问
- 静态方法中的
this
指向构造函数
js
function ELake(Name) {
this.Name = Name
}
// 静态属性
ELake.Age = 18
// 静态方法
ELake.sayHi = function () {
console.log(this)
}
ELake.sayHi()
console.log(ELake.Age)