”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > JavaScript 中的 proto 和 Constructor.prototype 有什么区别?

JavaScript 中的 proto 和 Constructor.prototype 有什么区别?

发布于2024-11-11
浏览:537

What is the Difference Between proto and Constructor.prototype in JavaScript?

proto和constructor.prototype的区别

对象的proto属性引用其原型对象,其中包含共享属性和方法。相比之下,constructor.prototype 指向对象构造函数的原型属性。

下面的示例说明了区别:

function Gadget(name, color) {
  this.name = name;
  this.color = color;
}

Gadget.prototype.rating = 3;

var newtoy = new Gadget("webcam", "black");

在本例中,newtoy.__proto__ 指向具有属性评级的 Gadget.prototype,而 newtoy.constructor.prototype 也指向 Gadget 。原型。然而,newtoy.constructor.prototype.constructor.prototype.constructor.prototype返回null,因为除了Object.prototype之外没有进一步的原型。

这是因为proto是对原型对象,而constructor.prototype遵循原型链。当您多次访问constructor.prototype时,您将遍历原型链,直到到达顶层Object.prototype。

在Internet Explorer中,没有__proto__属性。相反,您可以使用 [[Prototype]] 属性来访问对象的原型。然而,这个属性在标准 JavaScript 代码中是不可访问的。

引用原型对象可以帮助您理解 JavaScript 中的继承层次结构,并提供一种在相关对象之间共享属性和方法的机制。

版本声明 本文转载于:1729476318如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么我的 Font Awesome 图标没有渲染?
    为什么我的 Font Awesome 图标没有渲染?
    Font Awesome 图标不渲染:原因和解决方案Font Awesome 图标是增强网页视觉吸引力的流行选择。然而,尽管包含了所需的 CSS 和 HTML,一些用户还是遇到了图标无法正确呈现的问题。本文探讨了此问题的潜在原因并提供了解决方案。一个常见问题是 CDN 链接不正确。确保Font Aw...
    编程 发布于2024-11-15
  • std 命名空间内的专业化有哪些限制和允许?
    std 命名空间内的专业化有哪些限制和允许?
    std 命名空间中的专业化:限制和允许尽管能够向 std 命名空间添加显式专业化,但某些模板有明确的禁止。了解这些限制对于确保使用 std 命名空间特化的代码的有效性至关重要。特化禁止的模板numeric_limits: 不允许非算术标准类型(例如, complex).shared_ptr: 必须是...
    编程 发布于2024-11-15
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    编程 发布于2024-11-15
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-11-15
  • CSS 图灵完备吗?
    CSS 图灵完备吗?
    CSS 是图灵完备的。这意味着,如果您将 CSS 视为适当的 HTML 文件和一种用户交互类型,则可以执行任意不可计算的功能。此外,Webkit CSS 可以对规则 110 进行编码以证明图灵完备性。这意味着 CSS 是一种快速、独立于平台、图灵完备的语言。
    编程 发布于2024-11-15
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-11-15
  • Photoshop 如何在像素级别上混合两个图像?
    Photoshop 如何在像素级别上混合两个图像?
    Photoshop 如何混合两个图像?Photoshop 通过执行逐像素操作(结合每个图像中的相应像素)来混合两个图像基于指定混合模式的图像。混合模式决定如何组合两个图像的颜色和通道以创建结果像素。RGB 通道混合对于 RGB 图像,Photoshop 使用以下宏混合通道:ChannelBlend_...
    编程 发布于2024-11-15
  • 为什么 C/C++ 中 `char*` 可以别名为 `struct*` 而反之则不行?
    为什么 C/C++ 中 `char*` 可以别名为 `struct*` 而反之则不行?
    Char* 别名:指针的多功能性严格的别名规则控制着指针之间隐式别名的能力。它允许 char 指针指向任意类型的别名对象,同时限制相反的情况。这种不对称性激发了人们的好奇心:char 如何为指向同一位置的 struct* 别名,而不是相反?对于引用同一内存地址的 char 和 struct,两者确实...
    编程 发布于2024-11-15
  • 为什么 std::async Future 具有阻塞析构函数?
    为什么 std::async Future 具有阻塞析构函数?
    为什么要阻塞:std::async 返回的 Future 的阻塞析构函数背后的原因处理异步任务时, std::async 返回的 future 因其阻塞行为而闻名,引发了对其必要性的质疑。为了深入研究这个设计选择,让我们探讨导致其实现的问题和讨论。Herb Sutter 的论文“async、~fut...
    编程 发布于2024-11-15
  • 您可以在没有“eval”的情况下在 JavaScript 中创建运行时命名的函数吗?
    您可以在没有“eval”的情况下在 JavaScript 中创建运行时命名的函数吗?
    JavaScript 中不带 Eval 的运行时命名函数是否可以创建一个 JavaScript 函数,其名称在运行时确定,而不使用 eval 或非常规的引擎特定功能?是的,现在 ECMAScript 2015 (ES6) 及更高版本可以实现这一点。ES6 解决方案:计算属性名称在 ES6 中,分配给...
    编程 发布于2024-11-15
  • 如何调试 PDO 连接问题:为什么我的脚本尝试无限期连接?
    如何调试 PDO 连接问题:为什么我的脚本尝试无限期连接?
    PDO 连接测试:调试连接问题在为您的应用程序之一创建安装程序的过程中,您在通过 PDO 测试数据库设置时遇到了挑战。通过提供的代码片段,您发现脚本尝试无限期地连接到数据库,尽管明显的连接失败。要纠正此问题并能够区分有效和无效的数据库连接,您需要设置错误建立 PDO 连接时的模式。具体方法如下:tr...
    编程 发布于2024-11-15
  • 使用委托在 Kotlin 中实现 Mixins(或 Traits)
    使用委托在 Kotlin 中实现 Mixins(或 Traits)
    (Read this article in french on my website) In object-oriented programming, a Mixin is a way to add one or more predefined and autonomous functionalit...
    编程 发布于2024-11-15
  • C++ 中何时通过引用或指针传递:指导原则?
    C++ 中何时通过引用或指针传递:指导原则?
    C 中通过引用或指针传递:指导原则在 C 中,了解何时采用引用传递以及何时使用指针至关重要。这种做法可以产生高效且无错误的代码。一般情况将 std::string 传递给函数:foo(std::string*) 或 foo(std::string&)?将 tr1::shared_ptr 传递给函数:...
    编程 发布于2024-11-15
  • 是否有跨浏览器的 JavaScript 替代 CSS 视口单元(vh 和 vw)?
    是否有跨浏览器的 JavaScript 替代 CSS 视口单元(vh 和 vw)?
    使用 JavaScript 的 CSS 视口单位CSS3 引入了视口百分比长度单位 vh 和 vw,这对于响应式布局非常有价值。然而,问题是这些单元是否存在跨浏览器 JavaScript 替代方案。JavaScript/jQuery 替代方案当然!可以利用 jQuery 为视口单元提供替代方案。这是...
    编程 发布于2024-11-15
  • 除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    无需强制转换即可上下文转换为 bool您的类定义了对 bool 的显式转换,使您能够在条件语句中直接使用其实例“t”。然而,这种显式转换提出了一个问题:“t”在哪里可以在不进行强制转换的情况下用作 bool?上下文转换场景C 标准指定了四种值可以根据上下文转换为 bool 的主要场景:语句:if、w...
    编程 发布于2024-11-15

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3