构造函数是专门用于创建对象的函数,如果一个函数使用 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) // objectlet obj1 = new Person(200)let obj2 = new Person(300)
总结:
- 在实例化对象的时候,构造函数会自动执行
- 使用
new关键字调用函数的行为被称为实例化 - 实例化构造函数时没有参数时可以省略
(),不过还是建议加上小括号 - 构造函数的返回值即为新创建的对象
- 构造函数内部的
return返回的值无效!除非返回的是一个对象
注:实践中为了从视觉上区分构造函数和普通函数,习惯将构造函数的首字母大写。
