构造函数是专门用于创建对象的函数,如果一个函数使用 new
关键字调用,那么这个函数就是构造函数。
<script>
// 定义函数
function foo() {
console.log('通过 new 也能调用函数...');
}
// 调用函数
new foo;
</script>
// 声明一个函数(我有两个身份,一个就是当做普通函数调用;另一个是当做构造函数来用)
function Person(n) {
console.log(n) // 在实例化对象的时候,会自动执行构造函数
// 构造函数中,一般不写return
// return new Date() // 返回一个对象,在 new Person() 之后,就会得到这里返回的对象
}
// 如果使用 new 来 new Person() ,这个时候,Person就充当了构造函数的角色
// 使用构造函数,创建的对象;也叫做实例化对象
let obj = new Person(100)
// console.log(obj) // Person {} 得到对象
// console.log(typeof obj) // object
let obj1 = new Person(200)
let obj2 = new Person(300)
总结:
- 在实例化对象的时候,构造函数会自动执行
- 使用
new
关键字调用函数的行为被称为实例化 - 实例化构造函数时没有参数时可以省略
()
,不过还是建议加上小括号 - 构造函数的返回值即为新创建的对象
- 构造函数内部的
return
返回的值无效!除非返回的是一个对象
注:实践中为了从视觉上区分构造函数和普通函数,习惯将构造函数的首字母大写。