console.log() 在控制台以外的对象上调用

2024-01-13

我记得总是当我想要通过时console.log作为某个函数的回调参数,除非我使用bind()绑定方法console to it.

例如:

const callWithTest = callback => callback('test');
callWithTest(console.log); // That didn't use to work.
callWithTest(console.log.bind(console)); // That worked (and works) fine.

See 未捕获的类型错误:javascript 中的非法调用 https://stackoverflow.com/q/8904782/3853934.

然而,最近我注意到console.log()即使在控制台以外的对象上调用也能正常工作。例如:

console.log.call(null, 'test');

logs 'test'.

它何时以及为何改变?规范中有相关说明吗?


控制台 API 编辑草稿 https://web.archive.org/web/20160404005430/https://github.com/DeveloperToolsWG/console-object/blob/master/api.md以前说:

日志 API 应该都是可调用函数,允许它们作为参数传递给错误处理回调、forEach 方法等。

这不再包含在规范的当前版本 https://console.spec.whatwg.org/.

我认为 Chrome 和 Node.js 将其更改为像规范中那样工作,但似乎在它之前就已经这样工作了。

我仍然很好奇它是什么时候改变的以及原因是什么。

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

console.log() 在控制台以外的对象上调用 的相关文章

  • 在 ajax 完成之前阻止提交

    我正在使用 jQuery 并且我希望在所有 ajax 调用完成之前表单提交不会起作用 我想到的一种方法是存储一个布尔值 该值指示是否有 ajax 请求正在进行 在每一个结束时它都会被设置为 false 我不确定这是否是最好的方法 所以我将不
  • ReferenceError:找不到变量:需要

    我在加载时遇到问题node modules到我的网页之一 我已经安装了 npm node js 并且我想使用require 函数在我的网站上初始化 Firebase 我不知道为什么 但它抛出引用错误 ReferenceError 找不到变量
  • 是否可以禁用特定 jQuery Ajax 调用的 Turbolinks 以防止页面刷新和滚动?

    我有一个 Rails 5 应用程序 非常想使用 Turbolinks 在应用程序中 有几个 PATCH ajax 调用 它们只是用新数据更新服务器 但不需要担心更新页面的状态 每当这些 ajax 请求返回时 Turbolinks 就会刷新页
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 如何将中间件绑定到socket.io中的事件

    现在您可以将中间件绑定到io use middleware 但这仅在建立套接字连接时触发 有没有办法在将其传递给事件句柄之前拦截它 就像在expressjs中一样 换句话说 In 快递 js你可以做 app get middleware1
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • 在 MVC Razor 中的 C# 和 Javascript 之间共享常量

    我想在服务器上的 C 和客户端上的 Javascript 中都使用字符串常量 我将常量封装在 C 类中 namespace MyModel public static class Constants public const string
  • JavaScript 动画平滑滚动

    默认情况下 当您有这样的片段链接时 a href some url some fragment some text a 浏览器立即向下滚动到该片段 我该如何编程才能使用标准 JS 顺利地向下移动到该片段 这是一个例子 Example htt
  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 选中复选框时提交表单

    有没有办法在选中复选框时提交表单
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • Jquery:选择菜单以显示和隐藏某些div元素

    我正在创建一个选择菜单 根据所选选项显示和隐藏某些 div 像这样的东西
  • ng-model 和值组合不适用于输入文本框

    我有两个输入文本框 我需要组合在两个文本框中输入的值并将其显示在第三个文本框中 如果我只使用value在第三个文本框中 Box 1
  • 您如何看待引导模式触发器的相应回调?

    On 引导模态 http getbootstrap com javascript modals 我们知道我们可以为触发器绑定事件 例如show or hide using show shown hide hidden 但此事件绑定仅适用于一
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 在 javascript 中使用 xPath 解析具有默认命名空间的 XML

    我需要创建一个 XML xPath 解析器 所有解析都必须在客户端进行 使用 JavaScript 我创建了一个 javascript 来执行此操作 在默认名称空间发挥作用之前 一切看起来都正常 我根本无法查询具有默认命名空间的 XML 我

随机推荐

  • 列表索引更改多个元素

    我找不到任何与我的问题相匹配的内容 所以希望这还没有在某处提到过 我太愚蠢了 找不到它 thelist a 0 for i in range 5 thelist append a print thelist 此时程序返回 0 0 0 0 0
  • Django MEDIA_URL 和 MEDIA_ROOT

    我正在尝试通过 Django 管理上传图像 然后在前端页面或仅通过 URL 查看该图像 请注意 这一切都在我的本地计算机上 我的设置如下 MEDIA ROOT home dan mysite media MEDIA URL media 我已
  • 在 DataGridView 中隐藏行,绑定在我的项目中不起作用

    我面临一个有关项目中 DataGridView 行隐藏的问题 我粘贴的代码适用于单独的测试项目 但不适用于我的项目 请帮我解决这个问题 我正在测试的代码 public partial class frmTestGirdBinding For
  • 将行为附加到 Silverlight 中的所有文本框

    是否可以将行为附加到 Silverlight 应用程序中的所有文本框 我需要向所有文本框添加简单的功能 选择焦点事件上的所有文本 void Target GotFocus object sender System Windows Route
  • 在 Python 2 中编码转义字符而不杀死 Unicode 的正确方法是什么?

    我想我对 Python 的 unicode 字符串很着迷 我正在尝试对 Unicode 字符串中的转义字符进行编码without转义实际的 Unicode 字符 我得到这个 In 14 a u Example n In 15 b u n I
  • JQuery选择包含行中td内特定文本的所有行

    我有一个表 我试图选择其中包含文本 Test 的 td 的所有行 然后在所有匹配的行上隐藏带有 ms vb icon 类的 td 我最初有下面的代码 但这只隐藏了最后一个匹配行上的类 td contains test last parent
  • 在 Rails 中放置用户定义的类的位置

    我正在尝试使用这个类 http robbyonrails com articles 2005 05 11 parsing a rss feed http robbyonrails com articles 2005 05 11 parsin
  • 使用 restart=always 停止失败的容器

    我想停止一个无法重新启动的容器 它的状态是Restarting 该容器有restart always Doing docker stop
  • 使用本机脚本转换器

    我现在正在尝试使用 javascript 来连接 NativeScript 并有一个非常基本的问题 let costFormatter toView value console log Got value return value toMo
  • Delphi Indy 以西里尔文发送 POST 数据

    我想使用 indy 10 通过 delphi 发送西里尔文帖子数据 好吧 我知道如何发送数据 但是当我发送书面或西里尔文的内容时 发布数据响应带有一些编码符号 这是我的代码 http TIDHttp Create nil http Hand
  • 1900 年以来的日子

    我正在使用来自的数据Excel2007解析为PHPExcel http phpexcel codeplex com 日期显示为 1900 年以来的天数 我怎样才能转换为字符串YYYY MM DD 或类似的东西 像这样的事情 应该可以解决问题
  • 创建 BitBucket git 提交钩子?

    我刚刚将一个存储库从 GitHub 移植到 BitBucket 尽管它满足了许多要求 但我发现找到创建 git commit hook 的文档非常困难 最初 我在 CentOS 服务器上有一个由 GitHub 挂钩触发的 ruby 应用程序
  • React-native run-android 花费太多时间

    我在 Windows 上使用 React Native 已有 2 周了 但现在 在我的设备上运行我的应用程序需要太多时间 Scanning 835 folders for symlinks in D workspace react nati
  • Webgl 跨源图像不起作用

    我在跨源图像方面遇到了一些问题 希望您能提供帮助 这里是行为 我有 2 个域 例如 域名1 com 域名2 com 在domain1上我放了很多html5游戏 该域只是游戏的存储库 Domain2是真正的网站 wordpress网站 用户可
  • Celery 收到类型的未注册任务(运行示例)

    我正在尝试跑步example http ask github com celery getting started first steps with celery html id3来自芹菜文档 I run celeryd loglevel
  • Scanner vs. StringTokenizer vs. String.Split

    我刚刚了解了 Java 的 Scanner 类 现在我想知道它如何与 StringTokenizer 和 String Split 进行比较 竞争 我知道 StringTokenizer 和 String Split 只适用于字符串 那么为
  • 使用 Javascript 的无层 Web 框架?

    Links http links lang org是一种类似 Lisp 的函数式 Web 编程语言 框架 可以轻松编写一段代码 并将其编译为服务器端代码 客户端 JS 和 HTML 从而使编写 Web 应用程序变得更加容易 由于客户端和服务
  • Bootstrap Glyphicons 是如何工作的?

    我了解 CSS 和 HTML 的一些基础知识 有时会使用它们 但我不是专业人士 而且我很好奇 Bootstrap Glyphicons 的工作原理 我的意思是 Bootstrap zip 文件中没有图像 那么图像从哪里来呢 在 Bootst
  • 以实例变量和参数为键的 Spring 缓存

    我正在使用 ehcache 来缓存方法结果 键必须是成员对象和方法参数的组合 我的课程看起来像这样 Class A private B b Cacheable value someCache key some key based on B
  • console.log() 在控制台以外的对象上调用

    我记得总是当我想要通过时console log作为某个函数的回调参数 除非我使用bind 绑定方法console to it 例如 const callWithTest callback gt callback test callWithT