返回 JavaScript 大括号中的对象会导致错误



我目前正在学习codecademy JavaScript课程,在对象部分我发现了这个错误。部分是关于工厂函数的,工厂函数采用两个参数。工厂函数在调用时返回一个对象。在返回语句之后,当我按 Enter 并在新行上开始大括号时,程序会给出错误,但是当我将左大括号移回与 return 关键字相同的行时,错误消失了。我不知道为什么会这样。任何人都可以说明一下这段代码发生了什么。

给出语法错误的代码

const robotFactory = (model, mobi) =>
{
return 
{
model: model,
mobi: mobi,
beep()
{
console.log('Beep Boop');
}
}
};
const one = robotFactory('P-500', true);
console.log(one.model);

有效的代码

const robotFactory = (model, mobi) =>
{
return {
model: model,
mobi: mobi,
beep()
{
console.log('Beep Boop');
}
}
};
const one = robotFactory('P-500', true);
console.log(one.model);

JavaScript 采用隐式;s。因此,使用以下代码:

const robotFactory = (model, mobi) =>
{
return 
{

JavaScript 将上述代码视为:

const robotFactory = (model, mobi) =>
{
return;
{

这是一个语法错误。因此,您永远不应该在自己的行上有任何返回语句。

更多信息:ECMAScript 自动分号插入、了解 JavaScript 中的自动分号插入、JavaScript 的自动分号插入 (ASI( 的规则是什么?

相关内容

  • 没有找到相关文章

最新更新