美文网首页
原型链的理解

原型链的理解

作者: May丶be | 来源:发表于2017-09-23 20:23 被阅读0次

原型对象和函数三角形

function Person(){};
var p = new Person();
//如图,构造函数的.prototype属性的值就是原型对象
//实例对象是构造函数new出来的,该过程称为实例化
//原型对象的.constructor属性的值就是构造函数
//实力对象可以通过.__proto__属性访问到原型对象

什么是原型?

  • 构造函数的prototype属性的值就是原型
  • 将公共的方法或属性放到原型对象中,能够解决方法重复浪费内存的问题
  • 给原型对象添加属性,实例对象可以直接使用
  • 原型的作用主要是继承
  • 原型的类型是Object

.proto属性 与 .prototype属性

  • 主要区别:.proto是站在实例对象的角度访问原型对象;而.prototype是站在构造函数的角度访问原型对象;
  • .proto是非标准属性,由浏览器提供,不能用于生产环境中,主要用于辅助我们理解对象之间的关系

.constructor属性

  • 每个原型对象都有一个对应的constructor属性
  • constructor描述的是创建原型对象的构造函数
  • 所以 p.constructor === Person 的结果为true

什么是原型链?

对象有原型对象,原型对象也是对象,所以原型对象也有原型对象,这样一环扣一环就形成了一条链式结构,叫做:原型链

完整的原型链结构图

function  Fn () {};
var f = new Fn();
//1.将函数看做构造函数
//构造函数:Fn
//实例对象:f
//原型对象:Fn.Prototype

function Fn () {};
//2.将函数看做实例对象(函数可以这样创建:var Fn = new Function () {})
构造函数:Function
实例对象:Fn
原型对象:Function.prototype

var obj = new Object();
//3.将Object看做构造函数
构造函数:Object
实例对象:obj
原型对象:Object.prototype

//4.将Object看做实例对象
构造函数:Function
实例对象:Object
原型对象:Function.Object

//5.将Function看做实例对象
通过.__proto__访问到原型对象
//注意:Function作为对象时,是Function作为构造函数时的实例对象,继承自Function.prototype;
//即:Function.prototype === Function.__proto__
image.png

相关文章

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

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

  • 再来看一次JS继承

    原型链继承 理解原型链的概念 用一张图来理解原型链再合适不过了。 总结概括JS红宝书上对原型链的概念:每个函数都有...

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • 2018-01-09 关于javascript原型链的思考 pl

    s 深入理解原型和原型链? 构造函数 理解原型和原型链 new的时候js都干了什么? 一个实现继承的demo 构造...

  • Prototype

    原型链理解图

  • js继承完全理解

    认识原型链 要理解js的继承原来要先理解原型链,要理解原型链要先清楚下面两个结论: 任何一个构造函数(其实是任何一...

  • 来来来,通俗的理解一下原型,原型链......

    今天,在网上看到这个讲原型和原型链的通俗的分析,感觉对理解还是有帮助的,特此分享: 原型链理解起来有点绕了,网上资...

  • 读《javaScript高级程序设计-第6章》之继承

    读这篇之前,最好是已读过我前面的关于对象的理解和封装类的笔记。 一、原型链 原型链最简单的理解就是:原型对象指向另...

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

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

  • 原型和原型链

    今天发现一张特别好的图(↑↑↑上图↑↑↑),对原型和原型链的理解特别直观友好。 原型和原型链 基础储备:每个 JS...

网友评论

      本文标题:原型链的理解

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