1 引言
构造函数是一种特殊的函数,主要用来初始化对象;常规的 {...} 语法允许创建一个对象,但是通过构造函数可以快速创建多个类似的对象
2 约定
1. 命名以大写字母开头;
2. 它们只能由 “new” 操作符来执行
<script>
// 1. 创建一个构造函数
function Star(uname, age) {
this.uname = uname;
this.age = age;
}
// 2. 创建第一个实例对象
const ldh = new Star('刘德华', 18)
console.log(ldh)
// 创建第二个实例对象
const zxy = new Star('张学友', 19)
console.log(zxy)
// ......
</script>
可以 new 多个对象,并且各个对象是不等的,也不会相互影响
3 new 实例化的执行过程
说明:<1>. 创建新的对象
<2>. 构造函数this指向新的对象
<3>. 执行构造函数代码,修改this, 添加新属性
<4>. 返回新的对象
4 实例成员和静态成员
4.1 实例成员
通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员(实例成员包括实例属性和实例方法)
// 实例成员
function Person(name) {
this.name = name
}
const p = new Person('张三')
p.name = '李四' // name 就是实例属性
p.sing = () => { // sing 就是实例方法
console.log('唱歌')
}
console.log(p)
4.2 静态成员
构造函数中的属性和方法被称为静态成员(静态属性和静态方法)
说明:<1>. 静态成员只能由构造函数来访问;
<2>. 静态方法中的this指向构造函数
// 静态属性
Student.height = 180 // height 就是静态属性
Student.run = () => { // run 就是静态方法
console.log('跑步')
}
console.log(Student.height)
Student.run()