gpt4 book ai didi

javascript - 对象内部的匿名函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:45:00 24 4
gpt4 key购买 nike

我有一个像这样的 Javascript 片段:

var a = {ac: 10, function(){console.log("hi")}}

浏览器不会为此抛出错误。所以它可能是有效的。

但是当我使用

var a = {ac: 10, function hi(){console.log("hi")}}

浏览器抛出错误:

Uncaught SyntaxError: Unexpected identifier

谁能告诉我如何在 Javascript 的任何场景中使用第一个代码

提前致谢

最佳答案

这里发生的事情是 ES6 允许你有一个 shorthand syntax用于函数定义。这个:const obj = { method() {} }基本上翻译成这个 const obj = { method: function() {} } .

因此,当您使用此代码段时 var a = {ac: 10, function(){console.log("hi")}}你告诉浏览器 function不是该对象内的保留字,而是您要使用的属性的名称,因此您最终得到一个对象,该对象具有一个名为 function 的方法。 .

Btw, you should avoid this in the future, do not use reserved keywords for another purpose.

在第二个片段中 var a = {ac: 10, function hi(){console.log("hi")}}发生的事情是你试图拥有一个 function declaration ( function hi(){console.log("hi")} ) 在一个对象中,这是一个语法错误。通过为函数命名,您将对象内部方法声明的简写语法更改为函数定义。如果您为此速记语法使用正确的命名(避免保留字),或者在外部声明函数并在对象内部引用它,您应该不会有问题。

关于javascript - 对象内部的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52981708/

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