在函数内部传递参数给函数

Passing arguments to a function inside another function

本文关键字:函数 参数 内部      更新时间:2023-09-26

下面是两段代码。它们做同样的事情。我的问题是哪一个代表了最佳实践,背后的原因是什么。非常感谢你!


function foo(x){
    bar();
    function bar(){
       var y = x + 1;
    }
}

function foo(x){
    bar(x);
    function bar(x){
       var y = x + 1;
    }
}

第二个代码片段更好,因为它提供了更多的代码可重用性和变量和函数之间的低耦合。您也可以使用下面的代码来代替第一个代码片段,但您自己已经避免了,因为这不是一个好方法。就性能而言,第一个代码是更好的,因为你没有传递任何参数到你的条形函数,每当你传递参数给一个函数,它消耗CPU周期和资源。

var x=10;
.....
function foo(){
    bar();
    function bar(){
       var y = x + 1;
    }
}

你举的例子完全不适合你的问题。在您的示例中,您甚至可以这样做:

function foo(x){
    var y = x + 1;
}

但是你的函数似乎没有实现任何东西,这甚至使我们更加困难。回答你的问题,它是情景性的;或者它取决于问题

我想说最佳实践是读者更容易推理的,所以对于那个微不足道的例子,它是:

function bar(x) {
    var y = x + 1;
}
function foo(x) {
    bar(x);
}

它们几乎是相同的,并且它肯定不会影响你的应用程序速度,除非你正在处理一个非常大的程序。

但是,为了代码的可读性,您应该使用第二个选项。

同样,在像Java这样的语言中,你可以编写和使用静态函数-> ex: foo.bar(x),但你不能这样写。因此,如果你打算学得更多,写得更好,就使用第二种方法吧。