将参数传递给另一个函数

时间:2016-10-13 05:53:31

标签: javascript function arguments

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

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

4 个答案:

答案 0 :(得分:0)

您提供的示例非常不适合您的问题。在您的示例中,您甚至可以这样做:

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

但似乎你的功能根本没有实现任何东西,甚至使我们更难。并回答你的问题,它是情境;或取决于 问题

答案 1 :(得分:0)

第二段代码更好,因为它提供了更多的代码可重用性以及变量和函数之间的低耦合。您可以使用下面的代码代替第一个代码段,但您自己已经避免了这一点,因为它不是一个好方法。考虑到性能,首先代码更好,因为您没有将任何参数传递给bar函数,并且每当您将参数传递给函数时,它都会消耗CPU周期和资源。

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

答案 2 :(得分:-1)

我说最佳实践是读者更容易理解的东西,所以对于那个微不足道的例子,它就是这样:

db.getCollection('...').count({A_ID: 1234})
-> 4

答案 3 :(得分:-1)

它们几乎相同,它肯定不会影响您的应用程序速度,除非您正在开发一个非常庞大的程序。

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

此外,在Java等一些语言中,您可以编写和使用静态函数 - >例如:foo.bar(x),你将无法像那样写。因此,如果您打算学习更多知识并写得更好,请使用第二个。