![](/img/trans.png)
[英]What is the difference between returning a function call vs only calling the function again during recursion?
[英]calling a function vs returning the function call - difference?
如果有函数,请说foo
:
function foo() {
console.log('bar');
}
然后在JavaScript中,从另一个函数调用一个函数之间是否有任何区别,如下所示:
function baz() {
foo();
}
baz();
并返回函数调用,如下所示:
function baz() {
return foo();
}
baz();
两种方法都提供相同的输出(字符串输出:“ bar”)。
如果返回,则该函数的其余部分将不会执行……但是在您的示例中,返回行后没有更多代码,因此没有区别。
如果没有显式返回值,则返回undefined
…但是foo
无论如何都返回undefined
, 并且您对baz
的返回值不执行任何操作,因此没有区别。
您的两个示例之间没有实际区别。
您什么也没返回,只是foo
内部的console.log('bar')
。 它只是ah calling
而未返回。请参阅原始的return调用语句。它给出第二个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)您使用不返回任何内容的函数调用return; 2)您不检查返回值,那么用这种方式调用它是什么呢?
但是即使您进行检查,它也会返回未定义的内容,因此没有用。
输出是相同的,因此似乎没有理由更喜欢一种调用函数的方法。 毕竟,它们默认都返回undefined。 但是,我认为即使未定义返回结果,返回函数的结果有时也很有用。 通过返回undefined,可以在if条件中捕获它,该条件将允许其他语句执行,如下所示:
function foo() { console.log('bar'); } function baz() { foo(); } baz(); function baz2() { return foo(); } if ( baz2() == undefined) { // execute statements ... }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.