在函数内部传递参数给函数
Passing arguments to a function inside another function
下面是两段代码。它们做同样的事情。我的问题是哪一个代表了最佳实践,背后的原因是什么。非常感谢你!
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),但你不能这样写。因此,如果你打算学得更多,写得更好,就使用第二种方法吧。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数