美文网首页
十三(7)、面向对象之原型继承 ------ 2020-01-0

十三(7)、面向对象之原型继承 ------ 2020-01-0

作者: 自己写了自己看 | 来源:发表于2020-01-01 16:47 被阅读0次

1、例子:

function A (x) {
    this.x = x;
}
A.prototype.getX = function () {
    console.log(this.x);
}

function B (y) {
    this.y = y;
}
B.prototype.getY = function () {
    console.log(this.y);
}
let b1 = new B(100);
b1.y;
b1.getY();
b1.getX(); // Uncaught TypeError: b1.getX is not a function

2、实现原型继承:

function A (x) {
    this.x = x;
}
A.prototype.getX = function () {
    console.log(this.x);
}

function B (y) {
    this.y = y;
}
// 实现原型继承
B.prototype = new A (200);
B.prototype.constructor = B; 

B.prototype.getY = function () {
    console.log(this.y);
}
let b1 = new B(100);
b1.y;
b1.getY();
b1.getX();
原型继承.png

3、原型继承的特点:

/**
原型继承的原理:让我们想要访问的父类中的属性和方法出现在 这个实例的原型链上;
Chlid.prototype = new parent();
Child.prototype.constructor = Child;

特点:
(1)JS中的原型继承和其他语言中的继承不太一样(其他语言中的继承一般是拷贝继承,
也就是子类继承父类时,会把父类中的属性和方法拷贝一份到子类中,供子类的实例调取使用),
它是把父类的原型放到子类实例的原型链上,实例想要调用这些方法,是基于 __proto__原型链查找
机制完成的;
(2)子类可以重写父类上的方法(这样会导致父类其他的实例也受到影响);
(3)父类改变原型指向的这个实例中的私有属性和方法及父类中公有的属性和方法,
    最后都会变为子类中公有的属性和方法;
*/

相关文章

  • 十三(7)、面向对象之原型继承 ------ 2020-01-0

    1、例子: 2、实现原型继承: 3、原型继承的特点:

  • JavaScript之面向对象编程

    五、面向对象编程 目录:面向对象原型继承、面向对象class继承(ES6引入的) 1.面向对象原型继承 类:模板 ...

  • 面试题

    1、继承、原型、面向对象

  • JS汇总---面向对象&数组

    面向对象 js原型链的继承 静态属性怎么继承 js原型链以及特点 面向对象有哪几个特点 封装,继承,多态 对象的继...

  • lesson 5 面向对象及原型链 2021-04-29

    课程标题 面向对象及原型链 课程目标 面向对象思想 原型及原型链 继承 知识点 面向对象思想 原型链的指向 new...

  • JavaScript 面向对象编程

    JavaScript 快速入门 面向对象编程创建对象构造函数忘记写new怎么办?原型继承class继承 面向对象编...

  • Javascript继承的原理

    JavaScript的继承是通过原型链继承,与传统面向对象的继承方式不同。 prototype与原型 我们从头开始...

  • 学习JavaScript设计模式——面向对象(三)

    面向对象(三) 继承 3. 原型式继承——洁净的继承者 借助原型prototype可以根据已有的对象创建一个新的对...

  • js的继承

    面向对象的继承方式有很多种,原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生式组合继承、深拷贝...

  • 2018-06-27

    JavaScript(面向对象+原型理解+继承+作用域链和闭包+this使用总结) 一、面向对象 1、什么是面向对...

网友评论

      本文标题:十三(7)、面向对象之原型继承 ------ 2020-01-0

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