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

广东的网站建设b站推广是什么意思

广东的网站建设,b站推广是什么意思,舟山企业网站建设,中华智能自建代理网站设计模式 代码整体的结构会更加清楚,管理起来会更加方便,更好地维护 设计模式是一种思想 发布订阅 模块化开发 导入很多模块 容器即数组存储未来要执行的方法,同addEventListener 数组塌陷问题* 由于删除了元素,导致从删除元素的位…

设计模式

代码整体的结构会更加清楚,管理起来会更加方便,更好地维护

设计模式是一种思想

发布订阅

模块化开发 导入很多模块

容器即数组存储未来要执行的方法,同addEventListener

数组塌陷问题*

由于删除了元素,导致从删除元素的位置开始之后的每一项索引向前递进的问题。

如果还像开始一样索引递增+1,那么就会产生某些元素被跳过的现象

(function (){
      let listeners={}
      function checkName(name){
          if(typeof name !== 'string') throw new Error('name must be a string!')
      }
      function checkFunc(func){
          if(typeof func !== 'function') throw new Error('callback must be a function!')
      }
      const on=function (name,func){
          checkName(name)
          checkFunc(func)
          if(!listeners.hasOwnProperty(name)) listeners[name]=[]
          let pond=listeners[name]
          if(!pond.includes(func)){
              pond.push(func)
          }      }
      const off=function (name,func){
          checkName(name)
          checkFunc(func)
          if(!listeners.hasOwnProperty(name)) return;
          let pond=listeners[name]
          let index=pond.indexOf(func)
          if(index>-1){
              pond[index]=null;
          }
      }
      const emit=function (name,...args){
          checkName(name)
          let pond=listeners[name]
          if(!pond) return;
          for(let i=0;i
              let fn=pond[i]
              if(typeof fn !== 'function'){
                  pond.splice(i,1)
                  i--;
                  continue;
              }
              // fn执行
              fn(...args)          }      }
      window.$subscribe={
          on,
          off,
          emit
      }  })()
  const fn1=function (){
      console.log('fn1');
  }
  const fn2=function (){
      console.log('fn2');
      $subscribe.off('success',fn1)
      $subscribe.off('success',fn2)
  }
  const fn3=function (){
      console.log('fn3');
  }
  const fn4=function (){
      console.log('fn4');
  }
  $subscribe.on('success',fn1)
  $subscribe.on('success',fn2)
  $subscribe.on('success',fn3)
  $subscribe.on('success',fn4)
  $subscribe.emit('success')

OOP设计模式

函数式编程不能中止中间不能结束,也不能控制循环的步骤

发布订阅设计思想:

vue中父子组件$emit/$on通信,react中redux中公共状态改变通知各个组件执行,好几个地方加入一些方法,某个阶段把它们统一执行,而加入的方法并没有在同一个js中,这个时候就使用发布订阅。

观察者模式

两个对象:观察者和目标

目标:订阅一些方法和通知方法执行

观察者update,每个观察者执行update

把之前函数=>观察者,往事件池中加的是观察者,每个观察者都有一个结构

区别:

加入的是观察者,而不是一个函数。而通知也是通知observer.update执行。

核心思路:

都有个容器,把要呼叫的东西放进去到达时间以后通知执行

先放个容器,把所有东西订阅进去或移除订阅,以后再通知执行fire/notify

发布订阅是加方法,观察者是加观察者实例。发布订阅是直接通知方法,而观察者是通知观察者实例执行update。

http://www.zhongyajixie.com/news/50953.html

相关文章:

  • 微信公众号网页设计seo页面优化的方法
  • 网站做长尾词好还是单个词好体育新闻最新消息
  • 最便宜的网站建设搜狗seo怎么做
  • 安徽建设工程信息网官方网站公众号软文推广多少钱一篇
  • 手机销售网站建设项目书西安关键词排名优化
  • 艺商网站做推广的技巧
  • 手机网页开发工具兰州seo网站建设
  • 全国疫情最新情报seo专员是做什么的
  • 网站开发什么开发语言好建站abc网站
  • 南昌做网站电话dw网站制作
  • 营销型网站建设的利与弊个人网站制作源代码
  • 上海建设网站平台淘宝店铺怎么引流推广
  • 做游戏出租的网站好灰色行业怎么推广引流
  • 微商城网站开发视频武汉企业网站推广
  • 用dw做网站的代码百度推广软件
  • 做网站公司的介绍淘宝关键词top排行榜
  • vue做pc网站网站的推广优化
  • 网站建设高级 上海做国外网站
  • 南阳集团网站建设打开免费百度啊
  • 上饶做网站的百度广告怎么推广
  • 怎么查网站的所有权seo优化的方法有哪些
  • 任何网站都可以做谷歌推广的吗百度关键词排名查询接口
  • 政府网站模板下载网站推广软件哪个好
  • 购物网站有哪些比较有名的自己在家做电商
  • 网站建设具体流程图怎么建立个人网站
  • 深圳低价网站建设怎么申请网站
  • 云建站的步骤媒体网站
  • 钢铁网站哪家做的好十大跨境电商erp排名
  • 织梦网站如何做关键词网络营销课程学什么
  • 网站开发项目人员安排seo公司网站