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

prototype 和 _ _ proto _ _的关联

在 JavaScript 中,prototype 和 _ _ proto _ _ 是 原型链机制的两个核心概念,它们密切相关但作用不同。

  1. prototype

    • 定义:构造函数(function)自带的属性,用来存放所有实例共享的方法和属性。

    • 作用:当实例访问一个属性或方法时,如果实例本身没有,会沿着实例的原型链到 prototype 上查找。

示例:

function Person(name) {this.name = name;
}
Person.prototype.sayHi = function() {console.log(`Hi, I am ${this.name}`);
};const p = new Person('Alice');
p.sayHi(); // Hi, I am Alice
  1. _ _ proto _ _

    • 定义:对象的内部属性(在大多数浏览器里可以通过 proto 访问),指向 创建该对象的构造函数的 prototype。

    • 作用:用于查找属性和方法,即 原型链的指针。

示例:

console.log(p.__proto__ === Person.prototype); // true
  1. 它们的关联

    • 构造函数与 prototype 的关系:

      • Person.prototype 是构造函数的原型对象,存放实例共享方法。
    • 实例与 proto 的关系:

      • 实例 p 的 proto 指向 Person.prototype。
    • 查找机制:

      • 当访问 p.sayHi() 时,JS 会先在 p 自身查找,没有找到,就沿着 p.proto(也就是 Person.prototype)查找。

一句话总结:

  • 构造函数的 prototype:存放实例共享属性和方法

  • 实例的 proto:指向构造函数的 prototype,用于原型链查找

http://www.lryc.cn/news/623803.html

相关文章:

  • multiboot 规范实践分析
  • 交叉编译 手动安装 SQLite 库 移植ARM
  • Python数据分析案例82——基于机器学习的航空公司满意度分析
  • 攻防世界—unseping(反序列化)
  • pytorch线性回归
  • (一)React企业级后台(Axios/localstorage封装/动态侧边栏)
  • iSCSI服务配置全指南(含服务器与客户端)
  • JMeter(进阶篇)
  • LeetCode算法日记 - Day 13: 前缀和、二维前缀和
  • es下载、安装、部署以及集成和mysql数据同步
  • **守护进程(Daemon)** 是一种在后台运行的特殊进程
  • 为什么神经网络在长时间训练过程中会存在稠密特征图退化的问题
  • Linux中聚合链路与软件网桥配置指南
  • 深入了解linux系统—— 线程控制
  • AI 编程在老项目中的困境与改进方向
  • 【Linux | 网络】高级IO
  • 63.不同路径
  • 分治-归并-315.计算右侧小于当前元素的个数-力扣(LeetCode)
  • C++ vector的使用
  • C语言(12)——进阶函数
  • 北京JAVA基础面试30天打卡12
  • 语音转文字,如何提升内容创作效率?
  • 智能汽车领域研发,复用云原始开发范式?
  • WebSocket--精准推送方案(二):实时消息推送-若依项目示例
  • 在职老D渗透日记day19:sqli-labs靶场通关(第26a关)get布尔盲注 过滤or和and基础上又过滤了空格和注释符 ‘)闭合
  • 【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第十一节:网关安全-对称与非对称加密
  • 告别“测试滞后”:AI实时测试工具在敏捷开发中的落地经验
  • 【165页PPT】锂电池行业SAP解决方案(附下载方式)
  • 自动驾驶中的传感器技术34——Lidar(9)
  • 定时器中断点灯