原型链学习整理

作者: 小二子SAMA | 来源:发表于2018-03-23 22:41 被阅读0次

原型链的作用:

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

原型对象、构造函数、实例之间的关系:

每个构造函数都有一个原型对象,构造函数通过prototype属性可以访问到原型对象;

原型对象都包含一个指向构造函数的指针,原型对象通过constructor属性可以访问到构造函数;

每个实例都包含一个指向原型对象的内部指针,实例通过[[prototype]]属性可以访问到原型对象。

原型链的“链”的形成:

如果原型对象A是构造函数B的一个实例,那么,原型对象A作为实例包含了一个指向B的原型对象的指针,即通过A的[[prototype]]属性指向B的原型对象。而A的实例通过[[prototype]]连接到原型对象A。如果,B的原型对象同时又是构造函数C的实例,那么B的原型对象作为C的实例,其[[prototype]]属性指向C的构造函数。这样子,原型对象直接通过[[prototype]]属性可以逐层访问到。如图1所示。

图1

prototype和[[prototype]]以及__proto__区别:

[[prototype]],又称隐式原型(implicit prototype)是对象内置属性,ES5之前没有标准的方法访问,但是大多数浏览器都支持__proto__访问这个属性,ES6之后,可以通过Objet.getPrototypeOf()方式访问。而prototype,又称显示原型(explicit prototype),用来实现基于原型的继承和属性的共享。只有方法(Function)有prototype属性 ,但是方法也是对象(js中一切接对象),所以方法也有[[prototype]]属性。

原型链说明图如图2所示。原型链的根节点是Object.prototype。

图2

确定原型链和实例黄子健的关系常用的两种方法:instanceof和isPrototypeOf的实现原理都是基于原型链层级访问的:

A.__proto__.__proto__.... === B

相关文章

  • 原型链学习整理

    原型链的作用: 原型链是实现继承的主要方法。基本实现思想是利用原型链让一个引用类型继承另一个引用类型的属性和方法。...

  • 原型链整理

    总结: new的本质 指向总结Object.__ proto __ === Function.prototype ...

  • 2-6 原型和原型链 - 5个原型规则

    2-6 原型和原型链 - 5个原型规则 5条原型规则,原型规则是学习原型链的基础。 第一、所有引用类型(数组、函数...

  • 前端JS基础二(原型与原型链)

    原型与原型链 原型规则(是学习原型链的基础) 所有的引用类型(数组,对象,函数),都具有对像特性,即可自由扩展属性...

  • JavaScript原型对象与原型链

    一、前言 原型和原型链是 JavaScript中不可避免需要碰到的知识点,在刚开始学习 JS 时,原型和原型链都是...

  • 简单认识 JS 原型与原型链

    原型是JavaScript中一个比较难理解的概念, 为深入理解JavaScript 中的原型、原型链,整理下思路。...

  • 深入javascript之原型和原型链

    原型和原型链是js中的难点也是重点,明白了原型和原型链会让我们在后面不管是学习还是工作都会更加高效,并且原型和原型...

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

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

  • 原型、原型链

    (什么是原型、原型链?有什么作用) JavaScirpt深入之从原型到原型链 图解 Javascript 原型链 ...

  • 原型链&查找规则&作用域链

    原型链(隐式原型链) 属性的查找规则(原型链的查找规则) 作用域链

网友评论

    本文标题:原型链学习整理

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