为什么改变原型不会影响之前创建的对象?

2024-01-23

我有以下代码:

var A = function() {};
var a = new A();
var b = new A();
A.prototype.member1 = 10;

A.prototype = {}
var c = new A();
console.log(a.member1);
console.log(a.constructor === b.constructor);
console.log(a.constructor === c.constructor);
console.log('---------');
console.log(c.member1);

它的输出是:

10
true
false
---------
undefined
undefined

原型为a and b没有改变并且c有一个新的。我说得对吗,这是由于以下事实造成的a.constructor不等于c.constructor他们每个人都有自己的prototype?当两个对象的构造函数可能不相等时,是否还有其他情况?

额外问题:为什么印了两个undefined字符串? (铬)


当你打电话的时候

var a = new A();

基本上这个任务已经完成:

a.__proto__ = A.prototype;

然后你重新分配A.prototype到一个新对象,所以c gets {}作为它的原型。

A.prototype = {};
var c = new A();

然而,这并没有破坏旧的A.prototype目的 -a.__proto__仍然指向它。

我是否正确,这是因为 a.constructor 不等于 c.constructor 并且它们每个人都有自己的原型?

.constructor基本上只是一个便利的属性。它对实例的行为没有影响。

额外问题:为什么打印了两个未定义的字符串?

不在我的控制台中,他们没有! (歌剧12)

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

为什么改变原型不会影响之前创建的对象? 的相关文章

  • chrome 调试器承诺在暂停时不会解析?

    也许我没有正确调试承诺 但基本上 如果您在断点处停止并运行异步代码 它实际上不会完成 直到您恢复执行为止 这是一个问题 调试器允许您快速试验多个 api 方法 但如果您恢复它 您就不能 debugger now type the follo
  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口?

    有没有什么方法可以为 r闪亮数据表中的每个单元格获取工具提示 有很多方法可以获取悬停行或列 但我找不到一种方法来获取行和列索引并为每个单元格显示不同的悬停工具提示 任何人都可以修改以下代码吗 library shiny library DT
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式

随机推荐

  • SQL Server 2008 Express 无法用于合并复制?

    根据 Microsoft 的说法 SQL Server 2008 Express 应该能够作为拉取订阅者参与合并复制 至少对于 RMO 对象来说是这样 http msdn microsoft com en us library ms1478
  • 错误 800A01A8 需要对象

    我有一个 VBScript 代码 它给我一个错误 提示 需要对象 错误 800A01A8 位于第 11 行和第 3 个字符 这是代码 Dim strWebsite strWebsite 78 72 111 138 80 If PingSit
  • EF CTP4:“创建模型时无法使用上下文。”

    我有两个实体 学生和班级 他们之间有多对多的关系 class Student ICollection
  • 通过中断中间单词强制 Jasper HTML 报告换行

    我在 Jaspersoft Studio 中创建了一个 Jasper 报告 用于生成 HTML 报告 它的宽度为 550px 其中一个数据字段包含 URL 其中一些可能非常长 例如 我遇到的问题是生成的报告不会破坏 URL 中间单词 即查询
  • “dyn”在类型中意味着什么?

    我最近看到代码使用dyn关键词 fn foo arg dyn Display fn bar gt Box
  • Python 中使用哪种正则表达式风格?

    我想知道 Python 使用哪种 RegEx 风格 它是 PCRE Perl 兼容的还是 ICU 或其他什么 是兼容的enoughw Perl 这意味着大多数 Perl 表达式无需修改即可工作 它的目标是与 Perl 兼容 但当然 也有一些
  • 内联 Bootstrap 表单布局,标签位于输入上方

    我想使用 Bootstrap 3 创建具有以下布局的表单 我在这里尝试了一个jsfiddle http jsfiddle net quyB6 http jsfiddle net quyB6 我尝试过的标记
  • 如何更改工作表选项卡的颜色

    我有一个 python 脚本 它从外部资源中提取数据并将数据添加到 Google 表格中 在大多数情况下 我一切正常 除了我想更改选项卡的颜色以表示脚本状态 整个过程首先复制工作表中的现有选项卡 默认情况下 模板选项卡具有黑色突出显示 然后
  • System.out.printLn() 错误? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我对 Java 编程非常陌生 而且还不擅长 我只是想编译这个小程序 这样我以后就可以用它来解决继承和多态性问题 我正在使用 JGr
  • JINI 还活跃吗?

    与我交谈过的每个知道它的人都声称这是自切片面包以来最伟大的事情 为什么失败了 或者 如果它没有失败 现在谁在使用它 查看千兆空间 http www gigaspaces com 这是一个相当成功的 Jini Javaspaces 实现 我认
  • 在 Spark 数据框中插入记录

    我在 pyspark 中有一个数据框 这是它的样子 timestamp price 670098928 50 670098930 53 670098934 55 我想填补时间戳与之前状态之间的空白 这样我就可以获得一个完美的集合来计算时间加
  • 设计软电子邮件确认

    我有一个使用 Devise 和可确认模块的 Rails 3 应用程序 然而 阻止新注册用户在确认其电子邮件之前访问该网站会导致保留问题 相反 我们希望立即授予用户访问权限and仍然向他们发送确认电子邮件 然后 我们将运行后台任务来锁定在固定
  • C# Graphics.RotateTransform 适用于本地主机,但不适用于远程服务器

    它可以在我的机器上运行 我在 ASP NET Web 主机上使用 C 图形方法时遇到问题 我将两个地图图钉组合成一个图像 我加载一个空的图钉图像并在其顶部写一个数字 然后我将其中两个组合起来 其中一个旋转 15 度 另一个旋转 15 度 通
  • 在 Perl 中,散列的键和值是否具有相同的“顺序”?

    我知道 Perl 中的哈希值没有排序 我担心的是我是否可以依赖索引关系中出现的键和值 假设我有这个哈希值 my h a gt 1 b gt 2 c gt 3 d gt 4 If I do keys h 我可能会得到 b a d c 我能保证
  • KERAS model.summary 中的“None”是什么意思?

    输出形状中的 None 100 是什么意思 这是 无 样本数还是隐藏维度 None意味着这个维度是可变的 keras 模型中的第一个维度始终是批量大小 您不需要固定的批量大小 除非在非常特殊的情况下 例如 当使用stateful TrueL
  • 设置操作栏项目文本颜色?

    我正在尝试使用自定义设置我的操作栏项目的文本颜色style 但没有任何效果 我尝试过设置
  • 如何使用 jQuery 和 AJAX 将 PHP 页面加载到 div 中?

    我正在尝试编写一个函数来调用getproduct php id xxx当点击时 我可以得到innerHTML部分出现 但我又如何调用php实际起作用的页面 var id id document getElementById digital
  • 如何将 UIColor 转换为十六进制(网页颜色文本字符串)?

    有没有简单的方法可以转换UIColor为十六进制值 或者我们是否必须使用以下方法获取 RGB 分量CGColorGetComponents然后从那里解决 e g CGColorGetComponents color CGColor 0 25
  • Python:BeautifulSoup - 从类的名称中获取属性值

    我正在从网页上抓取项目 其中有多个 a class iusc style height 160px width 233px a
  • 为什么改变原型不会影响之前创建的对象?

    我有以下代码 var A function var a new A var b new A A prototype member1 10 A prototype var c new A console log a member1 conso