本文介绍了为什么返回类型相同但结果不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Java脚本中有两个具有相同返回类型的函数,但是返回类型有所不同。
I have two function of same return type in java script but return type is difference. The using code of snipped id below
function foo1()
{
return {
bar: "hello"
};
}
function foo2()
{
return
{
bar: "hello"
};
}
调用该函数。
console.log("foo1 returns:");
console.log(foo1());
console.log("foo2 returns:");
console.log(foo2());
输出结果....
foo1 returns:
Object {bar: "hello"}
foo2 returns:
undefined
推荐答案
这是因为JavaScript可以解释
That's because JavaScript interprets
return
{
bar: "hello"
};
作为 return
语句,然后创建块(在运行时被忽略)。不作为返回对象。而且我真的不知道为什么JavaScript开发人员会做出这样的决定。
as return
statement followed by block creation (which is ignored in runtime). Not as "return an object". And I really don't know why JavaScript devs made such decision.
Anyway ASI在<$ c之后插入;
$ c> return 产生等效代码:
Anyway ASI inserts ;
after return
resulting in the equivalent code:
return;
{
bar: "hello"
};
返回
之后的换行符是元凶。如果您想退货,请不要使用它。
The newline after return
is the culprit. Don't use it if you wish to return something.
这篇关于为什么返回类型相同但结果不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!