1. 构造器的别名
构造器又称为构造方法、构造函数
2. 那什么是构造函数呢?
(1)构造函数是一个函数
(2)js中的任何一个普通函数,当用new关键字来调用时,他就是构造函数,一般首字母大写
(3)构造函数与函数定义无关,与调用方法有关(new关键字调用即是)
3. 使用构造函数干嘛来着(作用)?
(1)构造函数主要用来创建对象时初始化对象(创建并初始化一个对象 )
(2)具体:js语言中使用构造函数(constructor)作为对象的模板,所谓的构造函数,就是提供一个生成对象的模板,并描述对象的基本结构的函数。一个构造函数,可以生成多个对象,每个对象都有相同的结构(方法、属性)。
4. 构造函数的意义
使用对象字面量创建一系列同一类型的对象时,这些对象可能具有一些相似的属性和方法,此时会产生很多重复的代码,把这些重复性的特征和行为抽象出来,做成构造函数,可以实现代码复用。
5. 构造函数的执行流程
立刻创建一个新的对象
—> 将构造函数中的this设置为这个新建的对象,在构造函数中可以使用this来引用该新建的对象
—>逐行执行函数中的代码
—>将新建的对象作为返回值返回
6. 构造函数中this的情况
(1)当以函数的形式调用时,this是window
(2)当以方法的形式调用时,谁调用方法this就是谁
(3)当以构造函数的形式调用时,this就是新创建的那个对象
参考代码:
7. new.target 的作用
判断对象的调用方式是否使用构造函数的方式来调用。
如果不是构造函数调用,该表达式返回undefined,否则返回正常的构造函数。
用法代码参考:
8. 内置构造函数
Object 、Array 、 String 、 Boolean 、 Number 、 Date …
9. 使用同一个构造函数创建的对象,我们成为一类对象,也将一个构造函数成为一个类。我们将通过一个构造函数创建的对象,称为该类的实例。
10. 箭头函数能当构造函数吗?
箭头函数是不能当构造函数的,因为箭头函数没有自己的this绑定和prototype属性。在箭头函数内部,this对象指定的是定义函数时上下文的this对象,而不是任何实际调用时的this对象。此外,箭头函数没有prototype属性,无法呗new操作符实例化。所以箭头函数无法像普通函数一样用作构造函数。