【发布时间】:2020-04-25 00:57:20
【问题描述】:
我仍在努力掌握函数定义:我是否正确地说 this 返回了一个未定义的类型?
function foo() {
return
{
car: 'Audi'
};
}
【问题讨论】:
标签: javascript
我仍在努力掌握函数定义:我是否正确地说 this 返回了一个未定义的类型?
function foo() {
return
{
car: 'Audi'
};
}
【问题讨论】:
标签: javascript
由于自动分号插入,它返回undefined。这是 ASI 的主要危害之一。在return 之后有一个换行符使其被视为return;。所以你的代码最终是:
function foo() {
return; // <=== Function returns here
{ // \
car: 'Audi' // > This is a freestanding block with a labelled statement which is the expression 'Audi'
}; // /
}
删除换行符并返回一个对象:
function foo() {
return {
car: 'Audi'
};
}
这就是为什么在事物上加上开头{ 是 JavaScript 的标准做法,甚至比其他类似 C 的语言更是如此。
【讨论】:
Javascript 假定 return 为 return;,如果你想返回任何值,它应该与 return 在同一行。
如果你在执行这个函数foo时得到undefined,那是因为函数本身在return返回,要获取对象作为返回值,修改你的函数为
function foo() {
return {
car: 'Audi'
};
}
【讨论】: