老师好,请教一个问题

来源:5-10 【TS继承准备】寄生组合继承实现方式【最佳继承模式】-2

目訫

2022-03-08

function _extends (parent, son) {
  function Middle () {
    console.log(this);
    this.constructor = son
  }
  Middle.prototype = parent.prototype
  return new Middle()
}

老师您看上面的代码,这里面的this指向的到底是谁,打印的是和new Middle一样,但不是很理解,还有是谁调用了new Middle(),麻烦老师讲解一下

写回答

1回答

keviny79

2022-03-09

同学,看下下面的小例子,你就能明白为什么上面的this是  new Middle出来的对象

function People(name, sex, phone) {

  console.log('this:', this)

  //父类 【父构造函数】

  this.name = name

  this.sex = sex

  this.phone = phone

}


let p = new People() // 这样是创建对象,  People函数是一个构造函数,内部的this就是p对象

console.log('p:', p)

People('kk', '23', '23') // 这样调用 浏览器下运行 this就是Window对象


0
0

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程