javascript函数返回未定义的而不是对象文本
我刚开始使用javascript,但很快就陷入了一个非常简单的任务——在我看来——返回一个对象文本 我目前拥有的代码如下所示javascript函数返回未定义的而不是对象文本,javascript,node.js,Javascript,Node.js,我刚开始使用javascript,但很快就陷入了一个非常简单的任务——在我看来——返回一个对象文本 我目前拥有的代码如下所示 function wrapInObject(x) { return { y: x }; } console.log(wrapInObject('someValue')); 但是,我没有将对象文本写入控制台,而是打印未定义的——我尝试用数字或其他对象文本调用函数,但没有任何帮助 谢谢你的帮助 这是由于一个被称为的过程,对于有C#
function wrapInObject(x)
{
return
{
y: x
};
}
console.log(wrapInObject('someValue'));
但是,我没有将对象文本写入控制台,而是打印未定义的
——我尝试用数字或其他对象文本调用函数,但没有任何帮助
谢谢你的帮助 这是由于一个被称为的过程,对于有C#背景或其他语言背景的新开发人员来说,这常常是一个混乱的根源,在这种情况下,将大括号放在新行是常见的做法 本质上,所发生的事情是在
return
语句后面放置一个隐式分号,这样它将返回undefined
,并且永远不会“到达”对象文本
要修复它,只需将开口撑杆移动到return
的末端,就像这样
function wrapInObject(x)
{
return {
y: x
};
}
因为自动插入分号
function wrapInObject(x)
{
return
{
y: x
};
}
console.log(wrapInObject('someValue'));
转换为
function wrapInObject(x)
{
return ; // semicolon is added
{
y: x
};
}
console.log(wrapInObject('someValue'));
这是因为分号自动插入在return语句之后添加了一个换行符,使得js引擎像解析分号一样解析该行。将开始括号移动到与return语句相同的行
自动插入分号。是的,空格会把你累死的。删除返回后返回哇-thx很多家伙!没有商业上昂贵的支持等可以更快:这就是为什么你应该总是写你的函数,如
function f(){…
或对象文字表达式,如return{…
。很好。我复制粘贴了代码,它工作了,因为我的文本编辑器修复了回车。