原型和原型链学习之构造函数

前沿:

原型和原型链是 JavaScript 中最经典的问题之一,而构造函数又是原型和原型链的基础;所以要想真正的了解原型和原型链,我们必须要清楚构造函数以及它的执行过程,这是学习原型和原型链必不可少的知识。

什么是构造函数:

  • 在 JavaScript 中,用 new 关键字来调用的函数,称为构造函数;
  • 在 JavaScript 中构造函数的函数名一般首字母要大写。

它解决了什么问题:

var p1 = { name: 'zs', age: 6, gender: 'male',}
var p2 = { name: 'ls', age: 5, gender: 'female',}
var p3 = { name: 'ww', age: 6, gender: 'male',}
var p4 = { name: 'zl', age: 7, gender: 'female',}
// ...

  • 当我们需要录入一堆数据,如:录入一个班级每个学生的基本信息,每个同学都可以当作一个对象去处理,这样就会出现大量重复性的代码,如果一个班学生很多,这样做就性价比就很低。
使用构造函数去处理这个过程
  function Pupil (name, age, gender) {
    this.name = name
    this.age = age
    this.gender = gender
  }
  const p1 = new Pupil('zs', 6, 'male')
  const p2 = new Pupil('ls', 5, 'female')
  ...
  
整个构造函数的执行过程:
  1. 当一个函数创建好以后,即使它的函数名是以大写开头,我们都不能保证它是构造函数;只有当一个函数是以 new 关键字去调用的情况下,才能说它是一个构造函数;
  2. 当以 new 关键字调用时,会创建一个新的内存空间;
  3. 函数体内部的 this 指向该内存;
  4. 执行函数体内的代码;
  5. 返回该中间对象,也就是返回了实例对象。
特殊情况:
function Pupil (name, age, gender) {
    this.name = name
    this.age = age
    this.gender = gender
    return [{ name: '123' },{name: '123'}]
  }
  const p1 = new Pupil('zs', 6, 'male')
  console.log(p1) // [{ name: '123' },{name: '123'}]
  • 挡在构造函数中return一个复杂数据类型时,则指向这个return出来得对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值