• 在项目中那个少用if else 语句,精简代码,便于维护的方法(1)


    一般我在写一个函数的时候,可能需要一个回调函数,例如:

    function loadQtipCode(dom, title, content, width, showcb, hidecb) {
            $(dom).qtip({
    
                content: {
                    title: {
                        text: title,
                        button: true
                    },
                    text: content
                },
                position: {
                    my: 'center',
                    at: 'center',
                    target: $(window)
                },
                show: {
                    event: false,
                    solo: false,
                    ready: true,
                    modal: {
                        on: true,
                        blur: false
                    }
                },
                hide: {
                    event: "unfocus"
                },
                events: {
                hide: hidecb || false,
                show: showcb || false
                    },
                style: {
                    classes: "qtip-shadow qtip-bootstrap qtip-service",
                    height: false,
                     width
                }
    
            });
    }
    showcb和hidecb就是在窗口关闭或者打开的时候执行的回调函数,但是需要保证在调用的时候不传回调函数的时候不报错,就需要用hidecb || false 和showcb || false
    hidecb || false可以这样来理解:
    hidecb || false的意思是

    if(hidecb ){
    return hidecb ;
    }else{
    return false;
    }
     
     
    这样即使客户不调用回调函数hidecb的时候就返回false,不会报错
    同理hidecb && false 这样来理解:
     
    if(hidecb ){
       return false ;
    }else{
       return hidecb;
    }
     
    在项目中我们经常用到
    var aa = hidecb() ||  showcb();
    这里可以理解为一个闭包里执行的结果然后赋值给aa
     
    (function(){
    var a =hidecb() ;
    
    if(new Boolean(a)){
        return a;
    }else{
      return showcb();
    }
    }());
    还有一种我们经常用到的,
    if(aa) {
    invalid(opts.position);
    }
    其实相当于 aa && invalid(opts.position);
     

    JS中new Boolean()和Boolean()有什么区别?

    前者是作为构造函数构造一个Boolean实例,得到的是一个对象,后者是作为普通函数调用,得到的是函数返回值false。
    new Boolean(null);      输出:  Boolean {[[PrimitiveValue]]: false}
    Boolean(null)   输出:false
     
     
  • 相关阅读:
    匈牙利游戏
    钓鱼
    路由选择
    借教室
    有趣的数
    广告印刷
    海战
    暑假周进度报告(一)
    在Oracle创建一个自己用的用户及角色
    下载,安装oracle数据库以及navicat连接数据库
  • 原文地址:https://www.cnblogs.com/laneyfu/p/4360209.html
Copyright © 2020-2023  润新知