美文网首页
关于javascript中的 "继承"

关于javascript中的 "继承"

作者: 不困于情 | 来源:发表于2020-06-18 14:34 被阅读0次
图片来自你不知道的javascript

使用js模拟面向对象继承:先上最终的代码

function Person(name, age) {
  this.name = name
  this.age = age
}

Person.prototype.getName = function () {
  return this.name
}
Person.prototype.getAge = function () {
  return this.age
}

function Teacher(name, age, subject) {
  Person.call(this, name, age)
  this.subject = subject
}
// 继承方法的最终方案:
// ES6 之前抛弃默认的 Teacher.prototype
// Teacher.prototype = Object.create(Person.prototype)
//ES6 开始直接修改现有的 Teacher.prototype
Object.setPrototypeOf(Teacher.prototype, Person.prototype)
Teacher.prototype.constructor = Teacher
console.log(Teacher.prototype)

let teac = new Teacher('zs', 18, 'gaoshu')
console.log(teac.getName())
console.log(teac.constructor)

1. 先创建一个Person函数

function Person(name, age) {
  this.name = name
  this.age = age
}

2. 完善Person.prototype的方法

Person.prototype.getName = function () {
  return this.name
}
Person.prototype.getAge = function () {
  return this.age
}

3. 使用new来新建teac对象

let teac = new Teacher('zs', 18, 'gaoshu')

4. 此时teac只有Peoron函数的属性,并没有继承Person.prototype的方法,所以需要继承方法,方法二选一,后者性能略微好一些

// ES6 之前会抛弃默认的 Teacher.prototype
Teacher.prototype = Object.create(Person.prototype)
//ES6 开始直接修改现有的 Teacher.prototype
Object.setPrototypeOf(Teacher.prototype, Person.prototype)

5. 此时虽然继承了方法,但是Teacher.prototype.constructor的值是Person,想一下为什么?所以我们来修复它

Teacher.prototype.constructor = Teacher
  1. 以上

相关文章

  • 关于javascript中的 "继承"

    使用js模拟面向对象继承:先上最终的代码 1. 先创建一个Person函数 2. 完善Person.prototy...

  • 函数的原型对象

    什么是原型? 原型是Javascript中的继承的继承,JavaScript的继承就是基于原型的继承。 函数的原型...

  • 一文带你彻底理解 JavaScript 原型对象

    一、什么是原型 原型是Javascript中的继承的基础,JavaScript的继承就是基于原型的继承。 1.1 ...

  • Web前端经典面试试题及答案2

    javascript面向对象中继承实现? 面向对象的基本特征有:封闭、继承、多态。在JavaScript中实现继承...

  • 关于JavaScript的继承

    继承是OO 语言中的一个最为人津津乐道的概念。许多OO 语言都支持两种继承方式:接口继承和实现继承。接口继承只继承...

  • 深入理解javascript中的继承机制 之 12种继承模式总结

    之前我们介绍了多种javascript中的继承方式,最后我们开始总结概括这些继承方式,先将javascript中的...

  • JavaScript - 继承和类

    JavaScript - 继承和类 在这一篇中,我要聊聊 JavaScript 中的继承和“类”。 首先跟你请教下...

  • Javascript中的继承

    很多语言中都有继承的概念,继承这种东西为什么会出现? 简而言之,继承之所以出现,就是为了减少重复无用功。好比爸爸有...

  • JavaScript 中的继承

    JS 继承机制的设计思想 Brendan Eich, 借鉴 C++ 和 Java ,把 new 命令引入了 JS,...

  • JavaScript 中的继承

    摘要:继承是面向对象思想中的重要概念,虽然严格来说 JavaScript 并属于面向对象类型的语言,但最终还是在E...

网友评论

      本文标题:关于javascript中的 "继承"

      本文链接:https://www.haomeiwen.com/subject/fjruxktx.html