if 条件判断放在哪里比较好?

2019-10-15 10:50:19 +08:00
 guorui112
function fn(){
	if(type == 1){
    	fn2();
    }else{
    	fn3();
    }
}

我现在有个 fn 方法,执行的时候会根据 type 进行判断到底调用 fn2 和 fn3 哪一个方法,在调用这些方法之前,需要做一些判断,判断这个方法需要的值是否为空之类的,有些判断是相同的,是放在工共的 fn 中比较好,还是这些判断在 fn2 和 fn3 中都写一次比较好

function fn(){
	// if(a == ''){
    // 
    // }
	if(type == 1){
    	fn2();
    }else{
    	fn3();
    }
}
3118 次点击
所在节点    JavaScript
7 条回复
ismumu
2019-10-15 11:03:58 +08:00
看你 type 侧重点,如果 type 比较重要:先用 type 来区分执行 f2 还是 f3,f2,f3 里面放公共 fn ;否则的话现有的就可以
markzyh
2019-10-15 11:20:07 +08:00
function fn() {
if (!a) {
if (type == 1) fn1();
else fn2();
}
}
waiaan
2019-10-15 11:36:31 +08:00
公共的吧,然后闭包返回。
ironMan1995
2019-10-15 11:38:45 +08:00
不知道其它地方用到 fn2 fn3 没,个人倾向只在 fn 中做根据 type 属性调用哪个函数的判断(后面也许需要有根据更多 type 属性值调用其它的方法 可以使用 switch),函数执行需要的变量只在自身作用域中做判断逻辑处理,低耦合
sheaned
2019-10-15 14:07:47 +08:00
一个函数自己要用到的参数自己去判断,干嘛让别的函数帮你做呢
leoskey
2019-10-15 16:35:47 +08:00
1. 尽量避免写重复的代码;
2. 错误优先执行;
3. 少写面条代码,该拆就拆。
```javascript
function fn() {
if(isChecked()){

}
}



```
leoskey
2019-10-15 16:37:14 +08:00
1. 尽量避免写重复的代码;
2. 错误优先执行;
3. 少写面条代码,该拆就拆。
```
function fn(type) {
if(isChecked()) {
return type == 1 ? fn1() : fn2();
}
}
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/609421

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX