繁体   English   中英

调用函数与返回函数调用-区别?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM