美文网首页
关于原型链

关于原型链

作者: 小金鱼要努力 | 来源:发表于2017-01-24 15:10 被阅读0次

原型链的基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法。

原型链的基本概念:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么,如果让这个原型对象等于另一个类型的实例,这个原型对象就会包含一个指向另外一个原型对象的内部指针,另一个原型对象也会包含一个指向另一个构造函数的指针。

概念读起来比较不容易懂,看图就懂了:

关于原型链

原型链的基本模式:

function SuperType(){

   this.property = true;

}

SuperType.prototype.getSuperValue = function(){

   return this.property;

}

function SubType(){

   this.subproperty = false;

}

//继承了SuperType,继承是通过创建SuperType的实例,并将该实例赋给SubType.prototype实现的,实现的本质是重写原型对象,代之以一个新类型的实例。原来存在于SuperType的实例中的所有方法和属性,现在也存在于SubType.prototype中。

SubType.prototype = new SuperType();

//给SubType.prototype添加getSubValue方法,在继承了SuperType的属性和方法的基础上,又添加了一个方法

SubType.prototype.getSubValue = function(){

   return this.subproperty;

}

var instance = new SubType();

alert(instance.getSuperValue()); //true

原型链的问题:包含引用类型的原型属性会被所有实例共享

function SuperType(){

   this.colors = ["red", "blue", "green"];

}

function SubType(){

}

//继承了SuperType

SubType.prototype = new SuperType();

var instance1 = new SubType();

instance1.colors.push("black");

alert(instance1.colors);  //"red, blue, green, black"

var instance2 = new SubType();

alert(instance2.colors);  //"red, blue, green, black"

相关文章

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

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

  • 原型链结构图

    原型链结构图 代码示例 原型链图示例 Function.prototype原型链 关于Function和自定义构造...

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

    原型与原型链 基本概念 关于原型和原型链的知识,首先来理解下以下几个知识点: 所有引用类型(Object、Arra...

  • 理解关于Function的原型链问题

    理解关于Function的原型链问题 关于Function的原型链问题的一些个人粗略理解,欢迎指正错误的地方 要理...

  • JS原型与原型链

    1.原型(公用属性) 2.原型链 关于原型链,你需要的知道的是:var XXX=new YYY()XXX的类型是对...

  • 使用原型链来构建项目架构

    使用原型链来构建项目架构 原型和原型链 一点废话 ​ 现在网上关于原型链这一部分的博客大多是从类继承模型开始说...

  • 关于原型链

    笔记重点: 根部的 Object.prototype == null;空函数._proto_ == Object....

  • 关于原型链

    原型链的基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法。 原型链的基本概念:每个构造函数都有一个原...

  • 关于原型链

    一、对象 要理解原型链,还要先从JavaScript的对象说起。在js中,对象分为两类,一类是函数对象,一类是普通...

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

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

网友评论

      本文标题:关于原型链

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