Chrome 控制台使用 log() 显示什么?

2023-12-29

我想我可能发现了 Google Chrome 的一个错误(16.0.912.75 m,撰写本文时的最新稳定版)。

var FakeFancy = function () {};
console.log(new FakeFancy());

var holder = {
    assignTo : function (func) {
        holder.constructor = func;
    }
};

holder.assignTo(function () { this.type = 'anonymous' });
var globalConstructor = function () { this.type = 'global' }

console.log(new holder.constructor());

如果您在 Firefox 中运行该块,它会显示这两个块都列为“对象”,第二个块的 type = local,非常好。但如果你在 Chrome 中运行它,它会显示

> FakeFancy
> globalConstructor.type

如果展开树,则内容是正确的。但我无法弄清楚 Chrome 列出的每个记录对象的第一行是什么。由于我没有操作原型,因此这些应该是不从任何地方继承的普通旧对象。

起初,我以为它与 WebKit 相关,但我在最新的 Safari for Windows (5.1.2 7534.52.7) 中尝试,两者都显示为“对象”。

我怀疑它试图对构造函数的调用位置进行一些猜测。匿名构造函数的间接寻址是否搞砸了?


第一行的结果是

console.log(new FakeFancy());

WebKit 控制台通常会尝试进行“构造函数名称推断”,让您知道它输出的对象类型。我的猜测是 Chrome 中包含的最新版本(而不是 Safari 5.1)可以对构造函数声明进行推断,例如

var FakeFancy = function () {};

不仅仅是像这样的

function FakeFancy() {}

所以这就是你看到差异的原因。

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

Chrome 控制台使用 log() 显示什么? 的相关文章

随机推荐

  • vim diff 可以使用耐心算法吗?

    有没有办法将vimdiff的diff策略设置为耐心算法 它内置于 git 中 似乎比普通的 diff 好得多 以供参考 如何将耐心设置为默认的 git diff 算法 https stackoverflow com questions 44
  • 转到 Google 表格中的最后一行数据

    我查了一下 发现以下代码将前进到 Google 电子表格中数据的最后一行 至少在我们添加第 297 行之外的更多行之前是这样 function myFunction var ss SpreadsheetApp getActiveSpread
  • 在父元素中使用 jQuery 获取数据属性的值

    我有以下 HTML 代码 其中onclick of spot info我想得到的值data test div class spot div class spot main span Test span a href class spot i
  • 解析 XML HttpResponse

    我正在尝试解析从 HttpPost 到服务器 last fm 的 XML HttpResponse 用于 last fm android 应用程序 如果我简单地将它解析为字符串 我可以看到它是一个普通的 xml 字符串 包含所有所需的信息
  • Deploy:capistrano 上的符号链接将“当前”目录指向以前的版本

    我正在使用 capistrano 部署我的 Ruby on Rails 项目 我使用的是 Dreamhost VPS 从几周前开始 在 capistrano 或乘客没有任何变化的情况下 我开始在部署中遇到一个奇怪的问题 每次 capistr
  • “navigator.app”文档在哪里?

    我只看到那个navigator appCordova 应用程序中的对象有一些有用的方法 但它们有记录吗 这似乎是一个特定于平台的 API 有意未记录在案 2012 年初开出了一张票 结论是 由于它是非官方的且特定于平台 因此它将保持未记录状
  • 如何关闭“限定符‘this’。” Resharper 中的警告是多余的吗?

    在我的代码中有很多this 限定符 编写 Python 代码的习惯 所以我在右手边的槽中有很多橙色的小警告标记 上面写着 限定符 this 是多余的 我不想删除this 预选赛 如何关闭橙色警告标记 For 锐锐器 9它已被移动 实际上我从
  • 如何使用 PHP 最好使用 SimpleXML 附加到 XML 文件

    我有一个 XML 文件 如下所示
  • R:更改plot_ly中的字体大小

    我一直在尝试更改我的标签上的尺寸x and y使用绘制的图表的轴plot ly in R 下面是我的代码 q lt plot ly x colnames avg exp norm y row names avg exp norm z avg
  • 编辑器模板/显示模板如何识别分配给它们的任何属性?

    我想添加一个 Required 归因于我的DateTime编辑器模板 以便我可以添加适当的验证方案或DataType Date属性 这样我就知道什么时候应该只显示日期 但我不知道如何获取元数据 该元数据说明编辑器模板已分配给它的属性 内置属
  • 对齐音频以便使用网络音频 api 流畅播放

    我目前正在尝试弄清楚如何使用网络音频 API 播放分块音频 一切都正常 但是 大多数块之间的转换并不像我希望的那样顺利 有一个非常非常短暂的时刻大多数人之间保持沉默 我当前的加载和播放代码 const response await fetc
  • 快速会话 cookie 隐藏在哪里?

    My express session正在工作 我用非常短的 cookie max age 10 秒 对其进行了测试 它按预期工作 app use session secret xxx resave false saveUninitializ
  • 增强 grid_graph 和图像上的图形切割

    我正在尝试使用 Boost Graph Library 在 2D 图像上使用图形切割 我的目标是将每个像素表示为具有 4 个浮动边缘 边界较少 的节点 邻域像素的边缘将具有取决于梯度或强度或其他东西的值 为此 我尝试将 boost grid
  • SparkSQL 下推过滤在 Spark Cassandra 连接器中不起作用

    我有一个表架构为 appname text randomnum int addedtime timestamp shortuuid text assetname text brandname text PRIMARY KEY appname
  • 更改弹出菜单样式 - 不起作用

    我正在尝试将样式应用于 Android 弹出菜单 单击按钮时会显示菜单 在我的示例中 我想设置黑色菜单背景 所以 我的菜单布局 menu menu
  • 从 IEnumerable 获取非唯一元素

    我有一个名为 Item 的类 Item 有一个名为 ItemCode 的标识符属性 它是一个字符串 我想获取项目列表中所有非不同项目的列表 Example List
  • 在应用程序恢复时在片段中设置侦听器实例

    我创建了 ErrorDialogFragment 其中包含 OnDialogClickListener 参数 每个需要显示 ErrorDialogFragment 的其他 Fragment 或 Activity 通过 ErrorDialog
  • 如何在 Windows 上运行 Nginx 和 Node.js?

    我想在Windows上安装Nginx 并运行两个节点应用程序 我怎样才能做到这一点 我尝试下载 Nginx 1 6 3 但没有找到有关如何在 Windows 上运行的相关信息 仅适用于Linux 我认为应该有一些针对节点的模块 任何建议都会
  • 使用 Vue.js 时如何显示新的引导模式数据

    我有一张关于我们的客户 即客户 的记录表 当用户单击它们时 它会加载一个引导模式 其中包含表单中的客户详细信息 然后用户可以编辑并提交表单 该表由 Vue 组件输出 模态是 Vue 子组件 当用户单击第一条记录时 它会填充模式并显示它 这很
  • Chrome 控制台使用 log() 显示什么?

    我想我可能发现了 Google Chrome 的一个错误 16 0 912 75 m 撰写本文时的最新稳定版 var FakeFancy function console log new FakeFancy var holder assig