美文网首页程序员
Javascript原型链和继承

Javascript原型链和继承

作者: 东方支柱 | 来源:发表于2020-06-08 15:49 被阅读0次
原型链图

实例化的对象拥有独立的一套属性和方法,举例如下:

function Person(name){

        this. name=name;

        this. getName=function(){

                return this. name;

        }

}

var p1=new Person("tom");

var p2=new Person("alice");

实例化的对象p1和p2拥有各自的name属性和getName方法,尽管这两个方法实现的功能一致。

function Person(name){

        this. name=name;

}

Person.prototype. getName=function(){

        return this. name;

}

var p3=new Person("tom");

var p4=new Person("alice");

把getName方法定义到Person. prototype原型上,p3和p4拥有各自的属性name,同时共享相同的getName方法。

同样的,若把属性定义到原型上,如Person. prototype. count=520; 则所有实例化的Person对象都可以访问人类数量,若新增一个实例修改count为521,所有的实例访问count时都显示521。

访问一个对象的属性和方法时,系统会沿着原型链去寻找,先在对象的数据结构中找,若没有找到就到其原型对象中找,若还没找到,就到其原型对象的上一层原型对象去找,这就是继承。如图,Person原型对象的__proto__指向它的父类Object的原型对象。

于是修改一个类Person原型对象的上一层原型对象为另外一个类Living原型对象,就实现了Person继承Living的目的。

Person. prototype.__proto__=Living. prototype;

如果Person原型对象中没有属性和方法,则直接将Person的原型对象改成Living的原型对象,也是可以的。

Person. prototype=Living. prototype;

同时更正原型对象的构造函数指向Person. prototype. constructor=Person;

这样Living就成为Person的父类,也就是说Person继承了Living。

相关文章

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

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

  • JavaScript继承方式详解

    JavaScript实现继承的方式主要有两种: 原型链继承和借助构造函数继承 一、原型链继承 原型链继承的主要思想...

  • 【javascript】继承

    javascript只支持实现继承,而且继承主要是依靠原型链来实现的。 原型链 javascript将原型链作为实...

  • js原型、原型链、继承的理解

    一、原型、原型链 原型是Javascript中的继承的基础,JavaScript的继承主要依靠原型链来实现的。 原...

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

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

  • javascript原型链及继承的理解

    javascript:void(null)# 原型链及继承的理解 定义函数 继承 继承构造函数 继承静态属性 继承原型链

  • JavaScript的六种继承方式

    JavaScript的几种继承方式 原型链继承 借助构造函数继承(经典继承) 组合继承:原型链 + 借用构造函数(...

  • javaScript原型链

    javaScript原型链概念JavaScript之继承(原型链)数据结构var Person = functio...

  • JS 继承

    1.原型链继承:prototype 2.原型链继承2:prototype 注意:JavaScript的类继承其实本...

  • 关于JS中的原型和原型链

    目录 关于js 对象和原型 原型链 基于原型链的继承 参考资料ECMAScript 6 入门JavaScript原...

网友评论

    本文标题:Javascript原型链和继承

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