简单描述了原型与原型链的理解,欢迎学习讨论。

构造函数

function A(){}

原型 构造函数都有prototype原型属性

A.prototype.name = 'wjx'

原型的 constructor属性

console.log(A.prototype.constructor)

实例对象

let B = new A()

实例对象都有__proto__属性,这个属性指向构造函数的原型

console.log(B.__proto__)

几者关系

// 原型与实例对象关系
console.log(A.prototype)//{ name: 'wjx' }
console.log(B.__proto__); //{ name: 'wjx' }
console.log(B.__proto__ === A.prototype);//true
// 原型与构造函数关系
console.log(A.prototype.constructor===A)//true 原型的constructor又指向构造函数
//=============================================================//
// 实例对象与原型的关系
B.name ='wjx123'
console.log(B.name);//wjx123  这里访问到了自己本身的属性
console.log(B.__proto__)//{ name: 'wjx' },他的__proto__指向原型A.prototype.name = 'wjx'
delete B.name //这里在闪吊后,自己的属性就没有了,会访问__proto__
console.log(B.name)//wjx  __proto__指向构造函数A的指向原型,

总结:

实例对象先访问自己的属性,如果没有就访问__proto__,
__proto__指向原型,在原型里面找, 如果找不到,就在原型的原型里找,原型的原型是啥呢?对象?。 原型的对象是由构造函数Object()生成的

console.log(Object.prototype.__proto__ === null) // true

所以 Object.prototype.proto 的值为 null 跟 Object.prototype 没有原型,其实表达了一个意思。
// 所以查找属性的时候查到 Object.prototype 就可以停止查找了。~~~~~~~~~~~~~~~~这个就是原型链了。。。。。。。。。个人学习理解。如有不对,请大佬纠正。

学习交流扣群儿732278669

JavaScript的原型与原型链理解相关推荐

  1. 深入理解JavaScript系列(5):强大的原型和原型链

    前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型. 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大.实 ...

  2. 理解JavaScript中的原型与原型链

    理解JavaScript中的原型与原型链 原型链是一种机制,指的是JavaScript中每个内置的对象都有一个内置的__proto__属性指向创建它的构造函数的prototype(原型)属性.原型链的 ...

  3. [我的理解]Javascript的原型与原型链

    一.原型与原型链的定义 原型:为其他对象提供共享属性的对象 注:当构造器创建一个对象,为了解决对象的属性引用,该对象会隐式引用构造器的"prototype"属性.程序通过const ...

  4. 真丶深入理解 JavaScript 原型和原型链(二):原型和原型链

    原文地址: https://www.jeremyjone.com/745/,转载请注明. 上一篇文章已经总结了关于原型的两个属性,那么接下来所有原型和原型链,乃至后面的继承,都与这两个属性有关系. 原 ...

  5. 深入理解javascript原型和原型链

    文章目录 构造函数 1. new一个新对象的过程,发生了什么? 2. 手写new函数 3. 构造函数上的方法 原型 1. 什么是原型? 2. 原型的作用是什么? 3. 原型中this的指向是什么? 函 ...

  6. 深入理解javascript之原型和原型链

    看到一篇关于原型和原型链很好的文章,一看就懂,分享给大家 什么是原型? 上面的Person.prototype就是原型,它是一个对象,我们也称它为原型对象. . 原型的作用是什么? 原型的作用,就是共 ...

  7. JavaScript apply 和 call 和 bind,原型和原型链的理解

    apply 和 call 改变 this 指向 apply 和 call 都可以让函数或方法调用 apply 第二参数是数组 call 参数是多个值 function f1(x,y){return x ...

  8. (转)【javascript基础】原型与原型链

    原文地址:http://www.cnblogs.com/allenxing/p/3527654.html 前言 原型是什么 理解原型对象 原型对象 isPrototypeOf hasOwnProper ...

  9. javascript之原型与原型链

    前言   了解JavaScript的原型与原型链有助于我们更深层次的理解这门语言,看过很多相关的文章,写的都很好,下面是根据自己的理解,一步步揭开原型与原型链 正文 一.数据类型   在JavaScr ...

最新文章

  1. 第一个hibernate程序HelloWorldHibernate
  2. BlogEngine.NET1.2的新功能
  3. 【GAN优化】详解对偶与WGAN
  4. SAP职业生涯中12个最致命想法
  5. 软件项目管理0817:一夜项目管理——把任务进度计划分配给负责人
  6. troubleshoot之:使用JFR解决内存泄露
  7. two sum python_Python | Leetcode 之 Two Sum
  8. 题解 AT5258 【[ABC156A] Beginner】
  9. ASP.NET3.5下的MSChart图表控件使用
  10. qnap自带有mysql吗_关于威联通QNAP NAS应用—Container Station 容器套件
  11. mysql 查询语法基础_入门MySQL——查询语法练习
  12. -离散数学-期末练习题解析
  13. C语言实现抽签小功能
  14. cad断点快捷键_CAD如何打断?CAD打断点和CAD打断命令操作方法
  15. Task01:熟悉新闻推荐系统的基本流程(数据库设计)
  16. Easyui--官网
  17. 图片轮换-jQuery
  18. 什么是微信SCRM客服系统
  19. 奈奎斯特与香农定理_大神带你理解奈奎斯特定理和香农定理
  20. [深入研究4G/5G/6G专题-56]: L3信令控制-5-无线承载DRB管理

热门文章

  1. 字符串函数的介绍带模拟_strcmp
  2. matlab通过摄像头获取图像进行处理
  3. 福州三岐小学电能管理系统项目小结-安科瑞苏月婷
  4. UltraEdit 10.20c 下载及注册
  5. vue3+ts+element封装一个简易的curd
  6. CertUtil的一般渗透
  7. 嵌入式Linux开发-网络设备驱动
  8. 互联网金融银行卡身份证识别
  9. github 网速问题
  10. 多链世界的“高速公路”:一文读懂跨链协议演进与未来