V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
guorui112
V2EX  ›  JavaScript

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

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

    }
    }



    ```
    leoskey
        7
    leoskey  
       2019-10-15 16:37:14 +08:00
    1. 尽量避免写重复的代码;
    2. 错误优先执行;
    3. 少写面条代码,该拆就拆。
    ```
    function fn(type) {
    if(isChecked()) {
    return type == 1 ? fn1() : fn2();
    }
    }
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1138 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:38 · PVG 02:38 · LAX 11:38 · JFK 14:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.