JS 函数的原型属性有什么用?

2024-01-06

我通过以下方式了解 javascript 原型继承__proto__财产。但是我注意到当我这样做时var f = function() {}f 现在将有一个prototype财产除了__proto__财产。看来prototype不参与财产连锁。到底是什么does it do?


它被指定为通过使用该函数创建的对象的原型new关键词。

例如:

function Foo() {
}
Foo.prototype.bar = 47;

var obj = new Foo();
alert(obj.bar); // alerts 47, via `obj`'s prototype

之间的参考obj以及分配给的对象Foo.prototype是一个实时的,所以添加更多的东西Foo.prototype会让他们出现在obj的原型:

Foo.prototype.charlie = 62;
alert(obj.charlie); // alerts 62

当然,如果你replace Foo.prototype(我不鼓励这样做),那么你指的是Foo.prototype在不同的物体上。obj仍会引用旧的:

Foo.prototype = {delta: 77}; // Not recommended
alert(obj.delta); // alerts "undefined"

免费的实例 http://jsbin.com/okeri4

关于__proto__: __proto__是非标准的。之前ECMAScript5 http://www.ecma-international.org/publications/standards/Ecma-262.htm(只有一年半的历史),有no直接与对象原型交互的标准方法,您只能在对象创建时分配它们,并且只能通过构造函数间接分配prototype财产。__proto__是某些 JavaScript 引擎(最著名的是 Mozilla 的 SpiderMonkey,Firefox 中的引擎)中的专有扩展。它不在任何标准中,而且根据 ECMAScript 委员会的说法,它也不会出现在任何标准中。 (相反,ECMAScript5 提供功能用于与对象的原型交互。)__proto__现已弃用 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/proto由 Mozilla 提供。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS 函数的原型属性有什么用? 的相关文章

  • 在 Web 浏览器中查找触发 then 事件的 jQuery 代码

    我加入了一个团队来从事一个项目 现在他们使用 jQuery 并且很多 javascript 文件都是外部文件而不是嵌入的 当我点击一个按钮时 它看起来就像 a class button cancel Cancel a 它触发一个在一个 ja
  • 我可以从 HTTP 请求中找到无线接入点的 BSSID(MAC 地址)吗?

    假设有人在咖啡店里无线连接到互联网 并向 johnsveryownserver com 发送 HTTP 请求 服务器端 有什么方法可以确定我的MAC地址吗 无线接入点他们连接到什么 请注意 我对他们机器的 MAC 地址不感兴趣 如果我无法使
  • 如何使用键盘和鼠标控制相机 - Three.js

    我在 WEB GL 中有一个带有 Three js 的 3D 环境 并且我曾经使用 Orbitcontrols js http codepen io nireno pen cAoGI http codepen io nireno pen c
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 未捕获的引用错误:myFunction 未定义[重复]

    这个问题在这里已经有答案了 这到底是怎么回事 http jsfiddle net sVT54 http jsfiddle net sVT54
  • 禁用 JavaScript 中的右键单击

    当我尝试禁用右键单击时 它不起作用 我尝试使用下面的代码 document onclick function e console log e button if e button 2 e preventDefault return fals
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • 创建 Cookie 时需要帮助

    我有一个名为yes和另一个名叫no
  • 保存/导出Chrome的JavaScript控制台输入历史记录

    无论如何 我可以保存或导出 JavaScript 控制台的历史记录吗 input 控制台历史记录 在 Google Chrome 中 我不想保存输出或错误 因此将鼠标悬停在控制台框上 右键单击并选择Save as 不是解决方案 我不想每次都
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 如何从顺序键盘导航中删除 Vuetify 附加图标

    在带有 Vuetify 的 Vue js 应用程序中 我有一组用v text field并且其中有一个append icon为了切换文本可见性 如下所示
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • ng-model 和值组合不适用于输入文本框

    我有两个输入文本框 我需要组合在两个文本框中输入的值并将其显示在第三个文本框中 如果我只使用value在第三个文本框中 Box 1
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1

随机推荐

  • sqlite3_open - 检查文件是否是 sqlite3 数据库时出现问题

    我第一次使用 sqlite3 无法让它在打开文件之前正确检查文件 到目前为止 sqlite 对任何文件总是返回 OK 另外 文件名是从 GTK 文件选择器返回的变量 它返回绝对路径 我猜这不是问题 谢谢你的帮助 这是代码片段 int rc
  • 使用 JSch 从 SSH 服务器读取命令输出时获取不需要的字符

    我正在连接到远程服务器 SSH 服务器并尝试获取特定路径中的文件列表 我能够获取该路径中的文件列表 但它们的格式不可读 任何人都可以提供帮助 String host xxxxx yyyy com String user user Strin
  • 使用javascript动态添加选择框的选项值

    我想在选定的 javascript 中填充年份 我做了以下代码
  • CGFloat 数组帮助 - iPhone 开发人员

    这是我的代码 CGFloat components 8 8 0 6 0 6 0 6 0 5 0 4 0 4 0 4 0 5 if appDelegate graphType isEqualToString response CGFloat
  • Python 的 deepcopy() 的运行时复杂度是多少?

    我正在尝试提高算法的速度 在查看了正在调用哪些操作之后 我很难准确地确定是什么导致速度变慢 我想知道 Python 的 deepcopy 是否可能是罪魁祸首 或者我是否应该进一步研究我自己的代码 查看代码 您也可以 它会遍历引用对象树中的每
  • 使用java程序编辑文本文件中的特定行

    好吧 假设我有一个名为 people txt 的文本文件 它包含以下信息 1 adam 20 M 2 betty 49 F 3 charles 9 M 4 david 22 M 5 ethan 41 M 6 faith 23 F 7 gre
  • Facebook Unity API - 发布带有链接和描述的屏幕截图?

    我正在尝试让我的应用程序 iOS Android 允许用户将屏幕截图发布到 Facebook 并附上链接和描述 我可以使用 FB API 将我的应用程序的屏幕截图上传到 Facebook 为我的应用程序自动生成的用户相册 方法是 int w
  • 与 cypher/neo4j 比较数组值

    我有一张成员图表以及他们查看过的项目 该数据将用于根据类似会员查看过的项目来推荐项目 我想根据项目颜色的相似程度对项目进行排序 颜色存储在数组中的项目上 红色 蓝色 绿色 cypher 中是否有任何方法可以比较数组以查看它们有多少共同元素
  • 如何将调试符号添加到build.gradle

    我已经为我的 Flutter 应用程序创建了 android 版本 然后我创建了一个内部测试版本 显示警告 此应用程序包包含本机代码 并且您尚未上传调试 符号 我们建议您上传一个符号文件以使您的崩溃 ANR 更易于分析和调试 基本上我要做的
  • 在django admin中一次创建多个对象

    例如 我有一个 Post 模型 Class Post models Model title models Charfield max length 200 other fields 我想知道有没有办法在管理中一次创建多个帖子 换句话说 我需
  • Kotlin `?.let` 是线程安全的吗?

    是科特林吗 let线程安全 比方说a变量可以在不同的线程中更改 正在使用a let 线程安全 如果它等于if a null block 会不会发生在if它不为空并且在block它已经为空了吗 a let block 确实相当于if a nu
  • 实体框架硬级联删除

    我有一个与实体框架映射的 SQLite DB 有 2 个表 集合 1 n 专辑 当我删除收藏集时 所有相关相册也必须被删除 我用CollectionRepo Delete collection 为了实现这一点 它使用以下代码 public
  • JavaScript 错误显示“confirm 不是函数”

    当我提交表单时 我将 jQuery 与验证插件一起使用 frmProject visible validate errorContainer site details visible messageBox1 errorLabelContai
  • 如何检查 Windows 程序的 C++ 文件是否存在?

    这是仅适用于 Windows 的程序 因此可移植代码不是问题 我只需要 bool DoesFileExist LPWSTR lpszFilename 根据陈雷蒙德先生的说法 你应该如果您迷信 请使用 GetFileAttributes ht
  • Sitecore 管道上传处理器

    我正在使用 UploadProcessor 阻止特定文件上传到 MediaLibrary 一切正常 我可以看到 Sitecore 的警报消息 但是 Sitecore 的错误消息并不真正用户友好 无法上传一个或多个文件 请参阅日志文件了解更多
  • 在 Java 中捕获 Scala 中抛出的异常 - 无法访问的 catch 块

    Scala 没有 https softwareengineering stackexchange com q 177806检查异常 然而 当从 java 调用 scala 代码时 需要捕获 scala 抛出的异常 Scala def f d
  • Request::createFromGlobals() 与 $this->getRequest()

    我见过两种在控制器中获取 Request 对象的方法 request Request createFromGlobals request this gt getRequest 我想知道有什么区别 一种方法比另一种方法更好吗 还有更多方法可以
  • 关键字“SELECT”附近的语法不正确。 ')' 附近的语法不正确

    我使用了vb net中的sql代码 SELECT Table1 Query amel code Table1 Query kala code Sum Table1 Query SumOfqty AS SumOfSumOfqty FROM S
  • C# - 常量值“4294901760”无法转换为“int”

    问候 我不敢相信我问了这么一个基本的问题 但这没有意义 所以就在这里 在 Windows Phone 7 net 上的 C 中 我尝试在类中定义一个常量 如下所示 error CS0266 Cannot implicitly convert
  • JS 函数的原型属性有什么用?

    我通过以下方式了解 javascript 原型继承 proto 财产 但是我注意到当我这样做时var f function f 现在将有一个prototype财产除了 proto 财产 看来prototype不参与财产连锁 到底是什么doe