gpt4 book ai didi

javascript - 这些对象字面量之间有什么区别?

转载 作者:行者123 更新时间:2023-12-04 11:53:36 25 4
gpt4 key购买 nike

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

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 中引入的。它们几乎是等价的,但还是有区别的。在第一个对象中,constructor只是一个键,其值是一个函数。在第二个对象中,constructormethod . 方法定义不可构造

Methods cannot be constructors. They will throw a TypeError if you try to instantiate them


发件人: MDN

关于javascript - 这些对象字面量之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68591963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com