Javascript 运行函数前检查条件的最佳方法是什么

Javascript 运行函数前检查条件的最佳方法是什么,javascript,Javascript,在调用函数之前,我需要检查一些条件,这些函数是从不同的js文件(如index.js或app.js)调用的 在给其他人打电话之前,最好的检查方法是什么?假设您正在执行类似身份验证的操作,如果用户已通过身份验证,则调用该函数。我需要检查30个函数的条件 我需要编写一个函数/属性/任何需要影响其他函数的东西,而不是对函数进行更改 file1.js: function1 function2 function3 ... function30 file2.js: file1.function1(); f

在调用函数之前,我需要检查一些条件,这些函数是从不同的js文件(如index.js或app.js)调用的

在给其他人打电话之前,最好的检查方法是什么?假设您正在执行类似身份验证的操作,如果用户已通过身份验证,则调用该函数。我需要检查30个函数的条件

我需要编写一个函数/属性/任何需要影响其他函数的东西,而不是对函数进行更改

file1.js:
function1
function2
function3
...
function30

file2.js:
file1.function1();

file3.js:
file1.function15();

您可以使用&&使语句短路

像,
condition&&fun()
,只有当conditon为true时才会调用fun()

这就是&&operator在JS中的工作方式。如果第一个表达式是错误的,那么它将不会执行其余的表达式,否则它将返回以下表达式返回的值,当然是在执行它们之后。
函数身份验证(条件){
返回条件;
}
函数isOdd(n){
日志(n,“为奇数”,n%2==0);
}
认证(假)和isOdd(3)//不打电话
认证(假)和isOdd(4)//不打电话
认证(真实)和isOdd(5);

认证(真实)和isOdd(6)如果我理解了您的问题,那么我想您不希望
If-else
开关将代码弄得乱七八糟,您希望有一种更干净的方法来实现这一点。我要做的是,创建一个配置文件,并以以下方式执行它:

import {function1, function2, function3, function4 ...} from './functions';

const FUNCTIONS_TO_RUN = {
   auth: () => {
      function1();
      function2();
      ...
   },
   noAuth: () => {
      function3();
      function4();
      ...
   },
   ....
};
打电话给他们时,我只会做以下事情:

FUNCTIONS_TO_RUN[conditionType]();
这不是确切的解决方案,而是一个如何以更干净的方式实现它的想法


conditionType
在这种情况下可以是
auth
noAuth

为了给我在评论中的建议提供一个示例,这是一种简单的方法,可以用auth检查包装每个函数,而不会给调用增加太多混乱

//现有代码的一些模型
var=true;
函数thing1(){alert(1);}
函数thing2(){alert(2);}
函数thing3(){alert(3);}
//新代码
函数checkAuthAndRun(func){
如果(已验证){
func();
}否则{
log(“不允许用户这样做”);
}
}
//调用您的函数
检查authandrun(thing1);
检查authandrun(thing2);

检查authandrun(thing3)
if
是一个好方法,那么将if语句添加到所有30个函数中是最好的方法吗@Jaromandaxy您可以将if封装在一个函数中,并传入回调以使事情更整洁。但不管怎么说,它仍然只是一个if。如果不进行重构,没有什么神奇的方法可以做到这一点。你可以使用&&来缩短语句。就像,
条件和&fun()
,fun()只有在条件为真时才会被调用。虽然从技术上讲,这比较短,但我认为它不值得失去可读性。@DBS:也许你是对的。但是我经常用这个,所以回答。我想如果你知道它是如何工作的,那么它就相当简单了。嗨,如果这些函数也有参数呢?因为如果我使用这种技术,第一个函数将运行,然后它将检查此条件并再次运行,对吗?@Kadir如果函数有参数,您也可以将这些参数传递到检查中。我将在答案中添加一个示例。感谢回复@DBS。它解决了我的问题。