这些对象字面量有什么区别?

2024-02-27

我创建了两个对象。第一个正在按预期工作。

let working = {constructor: function(){
  console.log("working");
}};

let notworking = {constructor(){
  console.log("notworking");
}}

new working.constructor();
new notworking.constructor();

但第二个抛出错误。错误消息是:

Uncaught TypeError: notworking.constructor is not a constructor

在 Firefox 和 Chrome 上测试。

在 Firefox DevTools 中,对象本身看起来是一样的。构造方法有区别。 工作构造函数具有参数、调用者、长度和名称属性。 不工作的构造函数只有属性长度和名称。

那么这两个对象或构造函数有什么区别呢?


第二种语法是方法语法,它是在 ECMAScript 2015 中引入的。它们是almost等价,但还是有区别的。在第一个对象中,constructor只是一个键,其值是一个函数。在第二个对象中,constructor is a method https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions. 方法定义不可构造

方法不能是构造函数。如果您尝试实例化它们,它们将抛出 TypeError

From: MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions#method_definitions_are_not_constructable

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

这些对象字面量有什么区别? 的相关文章

随机推荐

  • 发送电子邮件需要设置哪些 php.ini 参数? [复制]

    这个问题在这里已经有答案了 我想从我的 PHP 代码发送电子邮件 但收到警告消息 那么 php ini 参数要设置哪些呢 要检查 更改您的 PHP 邮件配置 打开 php ini 文件 如果您不知道它在哪里 请参见下文 搜索显示为 邮件功能
  • Visual Studio 2010 关闭确认

    我希望VS2010在我关闭整个环境时询问我是否确定要关闭VS2010 不幸的是我在任何地方都找不到这个设置 有人知道吗 AFAIK 没有这样的选择 然而 有一个古老的工具 叫做NoClose http www donationcoder c
  • 如何在 HTML 中实现“全选”复选框?

    我有一个带有多个复选框的 HTML 页面 我还需要一个名为 全选 的复选框 当我选择此复选框时 必须选择 HTML 页面中的所有复选框 我怎样才能做到这一点
  • 从 iframe 中重定向到

    我有一个 Rails 应用程序 它有一个在 iframe 中呈现的表单 并且从我想要的创建操作中redirect to在 iframe 之外并重新渲染整个页面 而不是在 iframe 中 我很好奇有什么想法可以实现这一目标 你能行的 你必须
  • 使用 SymPy codegen 为方程组生成 Fortran 子例程

    以我发现的以前的例子为基础here https stackoverflow com questions 25327845 how to generate fortran subroutine with sympy codegen 我尝试找出
  • 如何在 WordPress 中将 HTML 表单中的数据保存到数据库表中?

    我有一个 WordPress 主题 我正在尝试将 HTML 表单中的数据保存到数据库中 我制作了 HTML 表单并添加了一个 保存并关闭 按钮 该按钮调用名为的 JavaScript 函数saveData 从表单中获取数据并将其发送到add
  • 如何删除 Apple APNS 反馈收到的设备令牌

    我成功通过 PHP 获取 Apple APNS 反馈数据 我得到的结构 经过一些处理 看起来像这样 时间戳 设备令牌 我的问题是如何知道应该从数据库中删除哪些设备令牌并停止向它们发送通知 Regardz Mladjo 时间戳是这里的关键元素
  • 如何从React中的函数参数设置状态[重复]

    这个问题在这里已经有答案了 我将名称和值从子组件传递给handleChange 函数 现在我想将状态设置为与提供的名称匹配的值 但我不知道如何设置 我尝试了这种方式 但它给出了错误 this setState 不是函数 class Pare
  • MySQL 作业启动失败

    我在 Kubuntu 12 04 上 通过 apt get 安装 mysql mysql 版本 5 5 35 后 我尝试启动 mysql 服务 但出现此错误 sudo 服务 mysql 启动 开始 作业启动失败 所以我用谷歌搜索了这个问题
  • 循环分组依据、聚合并根据组创建新列

    我正在尝试获取学生专栏 根据他们的进度水平来统计活动 Data looks like STUDENT ID STUDENT ACTIVITY SESSION ID NODE NAME ACTIVITY NAME prog level Fre
  • 从 JSF 操作返回 null 和 "" 之间的区别

    据我了解 当 JSF 操作返回时 空字符串 用户停留在当前页面 但视图已刷新 然而 当动作返回时null用户仍然停留在当前页面 但旧视图被重用 我的问题是 上述说法正确 准确 吗 如果是 那么这意味着什么 具体来说 使用其中一种与另一种对页
  • Python图像库椭圆具有宽轮廓

    用PIL创建椭圆时 是否可以有更粗 更宽的轮廓 目前 我正在尝试做canvas ellipse box outline colour fill None 但希望能够给予outline参数a宽度 你可以使用aggdraw http effbo
  • 将行数组转换为列数组

    将任何 等长 行数组转换为列数组的最优雅的方法是什么 Eg 1 2 3 4 5 6 To 1 4 2 5 3 6 这是我到目前为止所拥有的 grid 1 2 3 4 5 6 grid2 for i in grid 0 grid2 push
  • Angularjs 多个 Dropzone 用于在单页上上传图像

    我使用 dropzone js 进行多图片上传 当单个页面上只有一个 dropzone 时 它 工作正常 但是 如果我尝试在单个页面上使用多个拖放区 则只有一个拖放区正在工作 即第二个拖放区 而第一个拖放区保持空闲 我试图寻找答案 但它们只
  • 传单仅呈现在一个角落

    我有一张只渲染到一个角落的传单地图 当我调整浏览器窗口大小时 整个地图都会呈现 这就是我调用地图的方式 var map L map map crs L CRS EPSG3857 setView 105 2 100 6 var tiles L
  • 印刷图片盒

    当我尝试打印PictureBox an ArgumentException被抛出 参数无效 这是打印功能 void pdGroupBox PrintPage object sender PrintPageEventArgs e foreac
  • 如何使用 sbt 跳过 javadoc 依赖项下载

    1 Javadoc 工件往往需要太多的空间和时间来下载 例如 scala library 2 10 2 sources jar是 1 Mb 但是scala library 2 10 2 javadoc jar是 34 Mb 2 大多数情况下
  • Mercurial - 同时比较多个变更集?

    为了比较我们使用 hg diff c
  • 定时器速度问题WPF

    我正在使用计时器来滚动列表 每毫秒间隔我都会启动 Tick 事件 事件虽然动画看起来很慢 repeatTimer Tick this new EventArgs repeatLeftTimer Interval TimeSpan FromM
  • 这些对象字面量有什么区别?

    我创建了两个对象 第一个正在按预期工作 let working constructor function console log working let notworking constructor console log notworki