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

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

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

    }
    }



    ```
        7
    leoskey   31 天前
    1. 尽量避免写重复的代码;
    2. 错误优先执行;
    3. 少写面条代码,该拆就拆。
    ```
    function fn(type) {
    if(isChecked()) {
    return type == 1 ? fn1() : fn2();
    }
    }
    ```
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2278 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 12:20 · PVG 20:20 · LAX 04:20 · JFK 07:20
    ♥ Do have faith in what you're doing.