当前位置: 首页 > 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.dtcms.com/a/336290.html

相关文章:

  • 计算机网络 OSI 七层模型和 TCP 五层模型
  • 【Linux系列】如何在 Linux 服务器上快速获取公网
  • 遥感数据介绍——MODIS、VIIRS、Sentinel-2
  • 飞算JavaAI结合Redis实现高性能存储:从数据瓶颈到极速读写的实战之旅
  • 三种变量类型在局部与全局作用域的区别
  • 大模型算法岗面试准备经验分享
  • 【Linux网络编程】NAT、代理服务、内网穿透
  • css中 hsl() 的用法
  • Java-I18n
  • 43 C++ STL模板库12-容器4-容器适配器-堆栈(stack)
  • 百度笔试编程题 选数
  • PWM控制LED亮度:用户态驱动开发详解
  • Soundraw - 你的AI音乐生成器
  • 51单片机-驱动静态数码管和动态数码管模块
  • linux线程被中断打断,不会计入调度次数
  • 解决 SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION蓝屏报错
  • 攻防世界—unseping(反序列化)
  • 机器学习----PCA降维
  • RocketMQ面试题-未完
  • 芋道RBAC实现介绍
  • python+flask后端开发~项目实战 | 博客问答项目--模块化文件架构的基础搭建
  • Valgrind 并发调试 ·:用 Helgrind 抓住线程里的“看不见的错”
  • 数据结构:在二叉搜索树中插入元素(Insert in a BST)
  • linux-高级IO(上)
  • 猫头虎AI分享|一款Coze、Dify类开源AI应用超级智能体Agent快速构建工具:FastbuildAI
  • #买硬盘欲安装k8s记
  • Flutter 3.35 更新要点解析
  • ICCV 2025 | Reverse Convolution and Its Applications to Image Restoration
  • 如何运用好DeepSeek为自己服务:智能增强的范式革命 1.2 DeepSeek认知增强模型
  • 计算机基础速通--数据结构·图的基础应用三(基础图算法进阶)