当前位置: 首页 > news >正文

罗店网站建设wordpress响应式

罗店网站建设,wordpress响应式,唐山企业网站,全球人口多少亿在工作中我们经常遇到有多个if的判读函数#xff0c;这是一件很正常的事情#xff0c;如下#xff1a; let order function (orderType, isPay, count) {if (orderType 1) {// 充值 500if (isPay true) {// 充值成功console.log(中奖100元)} else {if (count 0) {c…        在工作中我们经常遇到有多个if的判读函数这是一件很正常的事情如下 let order function (orderType, isPay, count) {if (orderType 1) {// 充值 500if (isPay true) {// 充值成功console.log(中奖100元)} else {if (count 0) {console.log(抽到10元优惠卷)} else {console.log(请再接再励)}}} else if (orderType 2) {// 充值 200if (isPay true) {// 充值成功console.log(中奖20元)} else {if (count 0) {console.log(抽到10元优惠卷)} else {console.log(请再接再励)}}} else if (orderType 3) {// 不充钱if (count 0) {console.log(抽到10元优惠卷)} else {console.log(请再接再励)}} } 但是在很多的时候里面的if的判断会包含很多方法和数据的处理使一个函数经常会达到200行以上那么有没有优化的方法呢我们今天来看一看。 一、定义的策略 言简意赅的说就是将每一个情况都第一个个方法在需要的时候传入参数判断即可。 const strategy {order500: function (isPay, count) {if (isPay true) {// 充值成功console.log(中奖100元)} else {this.orderNoraml(isPay, count)}},order200: function (isPay, count) {// 充值 200if (isPay true) {// 充值成功console.log(中奖20元)} else {this.orderNoraml(isPay, count)}},orderNoraml: function (isPay, count) {// 不充钱if (count 0) {console.log(抽到10元优惠卷)} else {console.log(请再接再励)}}, } 然后在使用的时候传入值进行函数判断即可返回需要的参数。 function orderFunc(orderType, isPay, count) {let orderTypeObj {1: order500,2: order200,3: orderNoraml};return strategy[orderTypeObj[orderType]](isPay, count); }orderFunc(1, true, 0) orderFunc(1, false, 100) orderFunc(2, true, 0) 二、责任链模式 它的定义就是在你目前能够处理的情况进行处理如果处理不了那么就到下一个函数一直到可以处理的为止。 //原则只处理单一模式处理不了之后往后传 function order500(orderType, isPay, count) {if (orderType 1 isPay true) {// 充值成功console.log(中奖100元)} else {order200(orderType, isPay, count)} }function order200(orderType, isPay, count) {// 充值 200if (orderType 2 isPay true) {// 充值成功console.log(中奖20元)} else {orderNoraml(orderType, isPay, count)} }function orderNoraml(orderType, isPay, count) {// 不充钱if (count 0) {console.log(抽到10元优惠卷)} else {console.log(请再接再励)} } 调用方法只需要执行一个函数就行了 order500(1, true, 100) order500(1, true, 100) order500(2, true, 0) 三、函数式模式 其实我感觉应该使第二种方法的精简版使每一个方法都继承他的下一个方法然后让他们相互调用形成一个循环。 方法的定义主要体现到next下一个方法。 function order500(orderType, isPay, count) {if (orderType 1 isPay true) {// 充值成功console.log(中奖100元)} else {return next} }function order200(orderType, isPay, count) {// 充值 200if (orderType 2 isPay true) {// 充值成功console.log(中奖20元)} else {return next} }function orderNoraml(orderType, isPay, count) {// 不充钱if (count 0) {console.log(抽到10元优惠卷)} else {console.log(请再接再励)} } 定义一个class类用来继承 class chain {constructor(fn) {this.fn fnthis.next null}// 设置下一链条setNext(nextChain) {this.next nextChain}// Run 起来passRequest() {console.log(this,this)let res this.fn.apply(this,arguments)if(res next) {return this.next this.next.passRequest.apply(this.next,arguments)}return res} } 然后实现它并且相互调用。 let order500Chain new chain(order500) let order200Chain new chain(order200) let orderNoramlChain new chain(orderNoraml)order500Chain.setNext(order200Chain) order200Chain.setNext(orderNoramlChain)order500Chain.passRequest(1, false, 100) 是不是这种方法也很巧妙呢在我们工作学习的过程中大家也可以试试把他们做成一个函数式的形式一起加油吧。
http://www.w-s-a.com/news/269717/

相关文章:

  • 网站怎么制作小程序wordpress实时获取qq资料
  • 网站的流量怎么赚钱经销做网站都有什么好处
  • 如何做好网站首页企术建站
  • 杭州网站建设咨询蓝韵网络聊城有制作网站的吗
  • 网站开发注意的事项深圳企业网站
  • 哈尔滨网站制作哪里专业网站建设维护有哪些内容
  • 花的网站建设规划书网络营销培训
  • 又拍云wordpress全站cdn无锡做网站品牌公司
  • 计算机网络工程网站建设黄石建设信息网站
  • 旅游网站开发毕业设计开题报告青岛网站建设服务公司
  • 人员调动在网站上怎么做网站开发课程意见和建议
  • 卓训网是个什么网站wordpress命令执行时间
  • 网站建设需要做哪些工作网片焊接
  • 网站优化方案dedecms win8风格网站模板
  • 企业如何制作网站管理系统慈溪住房和城乡建设部网站
  • 青岛网站建设有哪些公司区块链网站开发价格
  • 怎么设置网站的logo微信公众号的h5网站开发6
  • 粉色的网站绍兴市建设局网站
  • 个人网站的基本风格是wordpress 模板选择
  • 南昌专业做网站公司有哪些广州市住房城乡建设部门户网站
  • 福州网站建设团队淘宝联盟网站怎么建设
  • 福州企业网站建站模板国内黑色风格的网站
  • 好看的网站首页设计android移动开发
  • 域名注册完成后如何做网站域名 删除 wordpress
  • wordpress xml导入大小东莞seo优化方案
  • 网站建设效益网站销售怎么做的
  • 利用网站空间做代理设计方案的格式范文
  • 无锡建设工程质量监督网站遵义做手机网站建设
  • 衡阳商城网站制作ps做网站首页规范尺寸
  • 微信网站应用开发营销推广的方案