资讯专栏INFORMATION COLUMN

js 拒绝 if ... else

Carbs / 1757人阅读

摘要:先看常规的条件语句的写法拒绝之后大概是这样这里使用了的等价于或等价于

先看常规的条件语句的写法:

    function getInitData(columnType){
        if(columnType == "baiduZhidaoNum"){
            return {searchText:"", href:""};
        }else if(columnType == "weBo"){
            return {weiboType:"xinlangWeibo",weiboUrl:""};
        }else if(columnType == "APPDownload"){
            return {downLoadType:"templateSetting"};
        }else if(columnType == "contactPhone"){
            return {phoneArray:""};
        }else if(columnType == "inlineMap"){
            return {address:"", latitude:"", longitude:""};
        }else if(columnType == "weStore"){
            return {weiStoreType: "taobaoStore", storeWebAddress:""};
        }else if(columnType == "weRecruit"){
            return {jobType:"weijob_zhaopinUrl", content:"", weijobUrl:""};
        }
    }

拒绝if else之后大概是这样:

/*
    这里使用了ES6的Arrow Function,
    var fun = ()=>({searchText:"", href:""})
    等价于:
   var fun = function(){
        return {searchText:"", href:""}
    }
    
    或:
    var fun = (arg1, arg2)=>({searchText: arg1, href:arg2})
    等价于:
   var fun = function(arg1, arg2){
        return {searchText: arg1, href:arg2}
    }
*/
function getInitJumpPage(columnType){
        return {
                "baiduZhidaoNum" : ()=>({searchText:"", href:""}),
                "weBo" : ()=>({weiboType:"xinlangWeibo",weiboUrl:""}),
                "APPDownload" : ()=>({downLoadType:"templateSetting"}),
                "contactPhone" : ()=>({phoneArray:""}),
                "inlineMap" : ()=>({address:"", latitude:"", longitude:""}),
                "weStore" : ()=>({weiStoreType: "taobaoStore", storeWebAddress:""}),
                "weRecruit" : ()=>({jobType:"weijob_zhaopinUrl", content:"", weijobUrl:""}),
            }[columnType]();

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86422.html

相关文章

  • [实践系列]Promises/A+规范

    摘要:前言实践系列主要是让我们通过实践去加深对一些原理的理解。虽然规范中用来表示解决,但在后世的实现多以来指代之。是一个拥有方法的对象或函数,其行为符合本规范。实践中要确保和方法异步执行,且应该在方法被调用的那一轮事件循环之后的新执行栈中执行。 前言 [实践系列] 主要是让我们通过实践去加深对一些原理的理解。 实践系列-前端路由 实践系列-Babel原理 有兴趣的同学可以关注 实践系...

    hqman 评论0 收藏0
  • promise/deferred 模式原理分析和实现

    摘要:三模式模式其实包含两部分和。六化在编码的时候,想要用进行异步操作流程控制,就要将当前的异步回调函数封装成。 一、什么是promise/deferred 模式 promise/deferred 模式是,根据promise/A 或者它的增强修改版promise/A+ 规范 实现的promise异步操作的一种实现方式。 异步的广度使用使得回调,嵌套出现,但是一但出现深度的嵌套,就会让codi...

    gclove 评论0 收藏0
  • AngularJS中$q的promise使用及链式调用传值问题

    摘要:规范中文是提供的一个服务。实际调用这个方法最终在此处加入到队列中定义此处调用进入此处是链式调用传参关键,实际是上一个的的返回值,所以能知道,如果需要所有的都能取到异步任务的返回值,就得在的函数中,将值返回。 promise是什么 这里不解释promise是什么,因为我相信你来看文章的时候已经知道你什么是promise了。此处有promise规范。 Promise/A+规范 中文Prom...

    hiyayiji 评论0 收藏0
  • [拆弹时刻]小程序canvas生成海报(二)---优化方案

    摘要:注意如果用户一开始没有微信授权,生成海报时又必须要用户头像不能使用默认的话,那就只能老老实实走之前的流程了。组件名称终端类型微信版本触发方法关于的调用方法相册权限需要你提供保存相册权限获取相册权限成功,给出再次点击图片保存到相册的提示。 showImg(https://segmentfault.com/img/bVbs5V8?w=343&h=517);海报生成示例 海报生成速度缓慢...

    LittleLiByte 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<