如果有功能,请说foo
:
function foo() {
console.log('bar');
}
然后在JavaScript中,从另一个函数调用函数之间是否有任何区别,如下所示:
function baz() {
foo();
}
baz();
并返回函数调用,如下所示:
function baz() {
return foo();
}
baz();
两种方法都给出相同的输出(字符串输出:'bar')。
答案 0 :(得分:2)
如果你返回,那么函数的其余部分将不会执行...但是在你的例子中,在返回行之后没有更多的代码,所以没有区别。
如果您没有显式返回值,则返回undefined
...但foo
仍会返回undefined
和您不会做任何事情baz
的返回值,所以没有区别。
两个例子之间没有实际区别。
答案 1 :(得分:1)
你没有回复任何东西。你只是在console.log('bar')
内foo
。它只是啊calling
没有返回。查看原始的返回调用语句。它从你的第二个中提供undefined
值
第二个错误
function foo() {
return 'bar'; //this is return the `bar`
}
function baz() {
foo(); //its calling but not returning
}
console.log(baz());
所以你需要在另一个函数调用中返回函数
function foo() {
return 'bar';
}
function baz() {
return foo(); //return is important to returning the value from the function
}
console.log(baz());
答案 2 :(得分:1)
严格地说,你的第二个例子在两个方面是错误的: 1)使用不返回任何内容的函数调用return 2)你没有检查返回值,那么需要用这种方式调用它?
但即使你要检查,它也会返回undefined,所以没用。
答案 3 :(得分:0)
输出是相同的,所以似乎没有理由更喜欢一种调用函数而不是另一种函数的方法。毕竟他们都默认返回undefined。但是,我认为即使返回结果未定义,返回函数的结果有时也很有用。通过返回undefined,它可以在if条件中捕获,这将允许其他语句执行,如下所示:
function foo() {
console.log('bar');
}
function baz() {
foo();
}
baz();
function baz2() {
return foo();
}
if ( baz2() == undefined) {
// execute statements ...
}