我有一个像这样的 Javascript 片段:
var a = {ac: 10, function(){console.log("hi")}}
浏览器不会为此抛出错误。所以这可能是有效的。
但是当我使用
var a = {ac: 10, function hi(){console.log("hi")}}
浏览器抛出错误:
未捕获的语法错误:意外的标识符
谁能告诉我如何在 Javascript 的任何场景中使用第一个代码
提前致谢
这里发生的事情是 ES6 允许你简写语法对于函数定义。这:const obj = { method() {} }
基本上翻译成这个const obj = { method: function() {} }
.
所以,当你使用这个片段时var a = {ac: 10, function(){console.log("hi")}}
你告诉浏览器function
不是该对象内部的保留字,而是您要使用的属性的名称,因此您最终会得到一个具有名为function
.
顺便说一句,您将来应该避免这种情况,不要将保留关键字用于其他目的。
在第二个片段中var a = {ac: 10, function hi(){console.log("hi")}}
发生的事情是你试图拥有一个函数声明 (function hi(){console.log("hi")}
) 在对象内部,这是一个语法错误。通过给函数命名,您将对象内部方法声明的简写语法更改为函数定义。如果您为此速记语法使用正确的命名(避免保留字),或者在外部声明该函数并在对象内部引用它,则应该不会有问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)