设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

JavaScript 的一些常用设计模式(6)

发布时间:2019-08-19 17:07 所属栏目:21 来源:xianshannan
导读:例子 functionorder(options){ return{ next:(callback)=callback(options), } } functionorder500(options){ const{orderType,pay}=options if(orderType===1pay===true){ console.log('500元定金预购,得到100元优

例子

  1. function order(options) { 
  2.   return { 
  3.     next: (callback) => callback(options), 
  4.   } 
  5.  
  6. function order500(options) { 
  7.   const { orderType, pay } = options 
  8.   if (orderType === 1 && pay === true) { 
  9.     console.log('500 元定金预购, 得到 100 元优惠券') 
  10.     return { 
  11.       next: () => {}, 
  12.     } 
  13.   } else { 
  14.     return { 
  15.       next: (callback) => callback(options), 
  16.     } 
  17.   } 
  18.  
  19. function order200(options) { 
  20.   const { orderType, pay } = options 
  21.   if (orderType === 2 && pay === true) { 
  22.     console.log('200 元定金预购, 得到 50 元优惠券') 
  23.     return { 
  24.       next: () => {}, 
  25.     } 
  26.   } else { 
  27.     return { 
  28.       next: (callback) => callback(options), 
  29.     } 
  30.   } 
  31.  
  32. function orderCommon(options) { 
  33.   const { orderType, stock } = options 
  34.   if (orderType === 3 && stock > 0) { 
  35.     console.log('普通购买, 无优惠券') 
  36.     return {} 
  37.   } else { 
  38.     console.log('库存不够, 无法购买') 
  39.   } 
  40.  
  41. order({ 
  42.   orderType: 3, 
  43.   pay: true, 
  44.   stock: 500, 
  45. }) 
  46.   .next(order500) 
  47.   .next(order200) 
  48.   .next(orderCommon) 
  49. // 打印出 “普通购买, 无优惠券” 

上面的代码,对 order 相关的进行了解耦,order500,order200、orderCommon 等都是可以单独调用的。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读