美文网首页
原型与原型链以及继承

原型与原型链以及继承

作者: 弹指一挥间_e5a3 | 来源:发表于2019-06-01 18:21 被阅读0次

今天复习下原型与原型链的知识,以及记录新学的继承知识点。


知识点纲要

  • 原型与原型链
  • es5与es6继承

什么是原型链

下图就是原型链。全局对象window有三个属性Object,Array,Function。这三个属性都有prototype属性,在三个prototype属性中拥有非常多的方法。方便我们在声明对象,数组以及函数时调用。

注:在js中函数也是对象

image.png

例如我们声明一个空对象a,这个空对象a拥有toString等一系列方法

image.png
image.png
数组与对象就不一一举例了。

其过程是怎样的呢?
我们在创建a对象的时候,a对象会带有__proto__属性,这个__proto__属性指向的是Objectprototype。所以当a调用toString方法时,a对象本身没有这个方法,于是就从__proto__中去寻找,也就是Objectprototype,它里面有,所以a对象就能够调用toString方法。

image.png

如何实现继承?

1

function Person(name, sex){
    this.name = name;
    this.sex = sex;
}

Person.prototype.printName = function(){
    console.log(this.name);
};

function Male(name, sex, age){
    Person.call(this, name, sex);
    this.age = age;
}

Male.prototype = Object.create(Person.prototype);

Male.prototype.printAge = function(){
    console.log(this.age);
};

2

function Person(name,sex){
  this.name = name;
  this.sex = sex;
}

Person.prototype.printName = function(){
  console.log(this.name)
}

function Male(name,sex,age){
  Person.call(this,name,sex)
  this.age = age;
}
Male.prototype = new Person()
Male.prototype.printAge = function(){
  console.log(this.age)
}
Male.prototype.constructor = Male

3

class Human {
  constructor(name) {
    this.name = name
  }
  run() {
    console.log('I can run')
  }
}

class Man extends Human {
  constructor(name) {
    super(name)
    this.gender = '男'
  }
  fight(){
    console.log('I can fight')
  }
}

相关文章

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • 原型与原型链以及继承

    今天复习下原型与原型链的知识,以及记录新学的继承知识点。 知识点纲要 原型与原型链 es5与es6继承 什么是原型...

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 继承

    原型链直接继承 原型链直接继承prototype 原型链继承_prototype属性 继承_构造函数绑定

  • js中的实现继承的几种方式

    大纲:原型链借用构造函数组合继承原型式继承寄生式继承寄生组合式继承 1、原型链: 什么是原型链? 原型链的基本思想...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • Javascript 面向对象的程序设计(原型链与继承)

    继承 原型链 讲原型的时候提到过继承,设计原型的初衷就是为了继承,原型链是实现继承的主要方法。那什么是原型链,还记...

  • js基础之实现继承的几种方式

    js 实现继承的方式有: 原型链继承; 构造函数继承; 组合继承(原型链继承 + 构造函数继承)(最常用);(原型...

  • es5的部分继承以及es6的class

    一、JavaScript常用的原型继承方式 原型链继承 2,构造函数继承(对象冒充继承) 3,组合继承(原型链继承...

  • js之继承

    文章主讲 JS 继承,包括原型链继承、构造函数继承、组合继承、寄生组合继承、原型式继承、 ES6 继承,以及 多继...

网友评论

      本文标题:原型与原型链以及继承

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