构造函数是专门用于创建对象的函数,如果一个函数使用 new 关键字调用,那么这个函数就是构造函数。

    1. <script>
    2. // 定义函数
    3. function foo() {
    4. console.log('通过 new 也能调用函数...');
    5. }
    6. // 调用函数
    7. new foo;
    8. </script>
    1. // 声明一个函数(我有两个身份,一个就是当做普通函数调用;另一个是当做构造函数来用)
    2. function Person(n) {
    3. console.log(n) // 在实例化对象的时候,会自动执行构造函数
    4. // 构造函数中,一般不写return
    5. // return new Date() // 返回一个对象,在 new Person() 之后,就会得到这里返回的对象
    6. }
    7. // 如果使用 new 来 new Person() ,这个时候,Person就充当了构造函数的角色
    8. // 使用构造函数,创建的对象;也叫做实例化对象
    9. let obj = new Person(100)
    10. // console.log(obj) // Person {} 得到对象
    11. // console.log(typeof obj) // object
    12. let obj1 = new Person(200)
    13. let obj2 = new Person(300)

    总结:

    1. 在实例化对象的时候,构造函数会自动执行
    2. 使用 new 关键字调用函数的行为被称为实例化
    3. 实例化构造函数时没有参数时可以省略 (),不过还是建议加上小括号
    4. 构造函数的返回值即为新创建的对象
    5. 构造函数内部的 return 返回的值无效!除非返回的是一个对象

    注:实践中为了从视觉上区分构造函数和普通函数,习惯将构造函数的首字母大写。