当前位置: 首页 > news >正文

原型链的简单理解【关系到结论】

对应名称

  • prototype:原型
  • __proto__:原型链(链接点)

从属关系

  • prototype:函数的一个属性:对象{}
  • __proto__:对象Object的一个属性:对象{}
  • 对象的__proto__保存着该对象构造函数的prototype

证明从属关系

  • 对象的__proto__就等于函数的prototype,也证明了上面的从属关系。
// 函数
function Test() {
	this.a = 1;
}
// 函数的原型对象
console.log(Test.prototype); //{constructor: ƒ}
// 实例化对象
const test = new Test();
console.log(test.__proto__); //{constructor: ƒ} ,这里发现与函数的prototype是一样的结果
console.log(test.__proto__ === Test.prototype); //true,对象的__proto__就等于函数的prototype
console.log(Test.prototype.__proto__ === Object.prototype); //true,函数的prototype的__proto__就等于Object的prototype
console.log(Object.prototype.__proto__); //null,可以说Object就是原型链的顶端

原型链

  • 原型链:一个对象test为基准,__proto__为链接点的这条链条一直到Object.protype为止的这条链。
  • 原型链继承:沿着__proto__去找链上的任意一个原型属性,里面只要有我要的值,就拿来用,如果没有就继续往上找,直到最顶部(Object)为止,这种就属于原型链继承的找法。
  • 原型链的顶端是Object.protype (简称可以是Object或者null)。
/**
* test {
* 	a:1,
*  __proto__: Text.prototype = {
* 		b:2,
*    __proto__: Object.prototype = {
* 			c:3
* 		}
*  }
* }
*/
console.log(test.a); //1
console.log(test.b); //2
console.log(test.c); //3

最后:感兴趣可以学习哔哩哔哩的教学视频

相关文章:

  • Qt中实现渐变动画效果
  • DOM树的理解【面试常问】
  • h5适配的解决方案【1】
  • class命名及前端部分规范【解决命名的疑问】
  • 小程序中使用彩色图标(阿里iconfont)
  • 前端新手引导的简单实现【Intro.js插件】
  • javascript闭包的理解及应用场景
  • 数组、链表、Hash(转)
  • 【微信小程序】小程序授权登录偶发性的解密失败原因及解决方案
  • 第一种感想
  • 【支付】uniapp之app中的支付宝、微信支付的实现及orderInfo的说明
  • 简易定制 Debian 软件仓库
  • 【扩展程序】Chrome浏览器窗口大小调整插件ResolutionTest(免费下载)
  • uniapp多端插件:Tabs标签页 灵活配置 多端兼容 简单易用(与element-ui的Tabs 标签页使用一致)
  • RequireJS 基础学习
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript HTML DOM
  • JS基础之数据类型、对象、原型、原型链、继承
  • js正则,这点儿就够用了
  • node 版本过低
  • Python十分钟制作属于你自己的个性logo
  • python学习笔记 - ThreadLocal
  • Spring框架之我见(三)——IOC、AOP
  • unity如何实现一个固定宽度的orthagraphic相机
  • 百度小程序遇到的问题
  • 盘点那些不知名却常用的 Git 操作
  • 前端设计模式
  • 使用 @font-face
  • 最近的计划
  • 选择阿里云数据库HBase版十大理由
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • (1)(1.13) SiK无线电高级配置(六)
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (初研) Sentence-embedding fine-tune notebook
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)3D模板阴影原理
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • ***通过什么方式***网吧
  • 、写入Shellcode到注册表上线
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .net开发时的诡异问题,button的onclick事件无效
  • .net实现客户区延伸至至非客户区
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @Autowired多个相同类型bean装配问题
  • @JoinTable会自动删除关联表的数据
  • [ solr入门 ] - 利用solrJ进行检索
  • [C#]C#学习笔记-CIL和动态程序集
  • [daily][archlinux][game] 几个linux下还不错的游戏