JS原型链

作者: lin_lilili | 来源:发表于2020-09-12 22:06 被阅读0次

1什么是JS原型链?

  • 通过__proto__属性将对象与原型对象进行连接.

1.1 JS原型链的作用?

  • 组成的一个链条结构的继承组织.

2简单的原型链

  • 不BB看图.
简单的原型链
  • 对象o -->Fn的原型对象-->Object的原型对象-->null

    • 原型对象既是容器又是对象.
    • 通过proto属性,将对象与原型对象进行链接.
    • 除了Object函数的原型对象的__proto__属性指向null终止原型链.
    • 其他的函数的原型对象的__proto__属性都指向Object原型对象.
    • 是不是可以理解成除了Object的原型对象,其他所有函数的原型对象都是Object创建的?
    • 对象的__proto__属性指向对应构造函数的原型对象.
  • 通过简单原型链图解,实际上创建对象有2种方法.

    1. 内置的Object构造函数创建.
    2. 使用自定义构造函数创建.
  • 总结:
    • 通过原型链,对象可以获得原型链上所有原型对象上的属性和方法.
    • JS通过原型链条来继承方法.

3完整原型链

3.1 Function是一个特殊的函数

  • Function的proto属性和prototype属性同时指向Function的原型对象.
  • Function的原型对象的proto属性指向Object的原型对象.
  • Function自己创建了自己!
Function和Function原型对象

3.2 函数也是对象.

  • 所以函数有proto属性.
  • 所有函数的proto属性都指向Function的原型对象.
  • 也就是说所有的函数都是Function创建的.
完整原型图

4最后总结原型链

1 所有的函数都是Function构造函数创建的包括自己,Object,函数,Array等...
1.1 也就是说所有的函数的proto属性都指向Function原型对象.

2 除了Object的原型对象,其他函数的原型对象都是Object创建的.
2.1 也就是说,所有的函数的原型对象的proto属性都指向Object原型对象.

3Object的原型对象的proto属性指向null.
3.1 也就是说原型链条到这里是终点.

4原型链的目的就是实现继承.

相关文章

  • 廖雪峰JS小记

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

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • 从实现角度分析js原型链

    从实现角度分析js原型链 欢迎来我的博客阅读:《从实现角度分析js原型链》 网上介绍原型链的优质文章已经有很多了,...

  • JS原型链

    1什么是JS原型链? 通过__proto__属性将对象与原型对象进行连接. 1.1 JS原型链的作用? 组成的一个...

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

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

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 2022前端高频面试题

    JS相关 1.原型和原型链是什么 原型和原型链都是来源于对象而服务于对象的概念js中引用类型都是对象,对象就是属性...

  • JavaScript原型链

    js原型链 原型链是JS面向对象的基础非常重要 所有对象只有__proto__属性,而函数具有prototype属...

  • web前端面试之js继承与原型链(码动未来)

    web前端面试之js继承与原型链(码动未来) 3.2.1、JavaScript原型,原型链 ? 有什么特点? 每个...

网友评论

    本文标题:JS原型链

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