我目前正在学习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( 的规则是什么?