JavaScript构造函数

  1. 什么是构造函数

构造函数(Constructor)的创建方式和普通函数一样。但通常首字母进行大写,用于和普通函数区分。

但是当一个函数创建好以后,我们并不知道它是不是构造函数(即使函数名的首字母为大写)。只有当它以 new 操作符来调用的时候,我们才能说它是一个构造函数。

JavaScript构造函数_第1张图片

2、构造函数的作用

构造函数的作用是新建实例对象,并且给实例对象内的成员(属性或方法)赋值。

在我们需要创建大量同一类型的对象时,这些对象都具有某些属性或方法,如果我们直接通过变量加字面量的形式进行赋值,会产生很多重复的代码。而当我们将这些对象抽象为一个类时,创建一个构造函数,就可以实现代码复用。

举个例子,我们要录入高中三班中每一位同学的个人信息,那么我们可以创建一些对象,比如:

JavaScript构造函数_第2张图片

像上面这样,我们可以把每一位同学的信息当做一个对象来处理。但是,我们会发现,我们重复地写了很多无意义的代码。比如 name、age、gender、hobby 。如果这个班上有50个学生,我们得重复写50遍。

这个时候,构造函数的优势就体现出来了。我们发现,虽然每位同学都有 name、gender、hobby这些属性, 但它们都是不同的,那我们就把这些属性当做构造函数的参数传递进去。

我们就可以创建以下的函数:

 JavaScript构造函数_第3张图片

 当创建上面的函数以后, 我们就可以通过 new 关键字调用,也就是通过构造函数来创建对象了。

JavaScript构造函数_第4张图片

 封装构造函数的过程会比较麻烦,但一旦封装成功,我们再创建对象就会变得非常轻松,这也是我们为什么要使用构造函数的原因。

3、构造函数的执行流程

  1. 立即创建一个新的对象
  2. 将新建的对象设置给函数中的this,在构造函数中可使用this来引用新建的对象
  3. 逐行执行函数中的代码
  4. 将新建的对象作为返回值返回

JavaScript构造函数_第5张图片

 小结:

一个构造函数可以通过new创建多个实例对象

创建构造函数时,里面的属性和方法前必须加this

构造函数不需要return 就可以返回结果

你可能感兴趣的:(javascript)