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

营销网站建设 公司排名网络推广工具和方法

营销网站建设 公司排名,网络推广工具和方法,那个网站做问卷好,网站建设最新外文翻译设计模式 代码整体的结构会更加清楚,管理起来会更加方便,更好地维护 设计模式是一种思想 发布订阅 模块化开发 导入很多模块 容器即数组存储未来要执行的方法,同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.yidumall.com/news/16055.html

相关文章:

  • 东莞微网站制作公司别做网络推广员
  • 重庆论坛网站建设上海sem
  • 网站全屏广告网络营销的营销理念
  • 做外贸 网站没有邮箱怎么找青岛百度推广seo价格
  • 做网站郑州公司如何自己制作网页
  • 企业没有网站怎样做推广方案惠州大亚湾经济技术开发区
  • 上海地区网站建设中国疫情最新情况
  • 做流量网站怎么做百度热搜 百度指数
  • 淘宝网发布网站建设软文
  • 有做美食的网站有哪些seo优化效果
  • wordpress中文源码下载宁波seo排名外包
  • 政府网站群集约化建设通知正规seo排名多少钱
  • 北辰集团网站建设培训机构加盟
  • 大型建站公司站长工具樱花
  • 大学网站建设专业如何制作网页链接教程
  • 网站建站一本通营销管理培训课程培训班
  • 做网站的话 java和c平台推广
  • .net网站内容管理系统如何快速推广自己的产品
  • 企业网站建设公司排名公司软文怎么写
  • 手机版网站案例如何购买域名
  • 国内做色情网站潍坊做网站哪家好
  • 网站推广信息怎么做网站推广应该怎么做?
  • flask做的网站如何上传文件哈尔滨百度推广联系人
  • 北京网站备案公司免费建站哪个网站最好
  • 怎么找做网站的公司百度广告推广费用一年多少钱
  • 网站建设的作用有哪些方面小程序开发费用明细
  • 营销型网站建设成为企业发展新趋势自助建站工具
  • 一学一做征文网站百度关键词优化大
  • 手表电商网站百度指数如何提升
  • 网站制作流程关键词优化包含