我刚刚开始使用 javascript,但很快就陷入了一个——在我看来——返回对象文字的相当简单的任务。
我当前的代码如下所示
function wrapInObject(x)
{
return
{
y: x
};
}
console.log(wrapInObject('someValue'));
但它没有将对象文字写入控制台,而是打印 undefined
- 我尝试用数字或其他对象文字调用该函数,但没有任何帮助。
感谢您的帮助!
最佳答案
这是由于一个名为 automatic semicolon insertion 的进程造成的对于具有 C# 背景或其他语言背景的新开发人员来说,这常常是困惑的根源,在这些语言中,将左大括号放在新行上是常见的做法。
本质上,发生的情况是在您的 return
语句之后放置一个隐式分号,以便它返回 undefined
并且您的对象文字永远不会“到达”。
要修复它,只需将左大括号移动到 return
的末尾,如下所示
function wrapInObject(x)
{
return {
y: x
};
}
关于javascript函数返回未定义而不是对象文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38620673/