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

网站开发培训排名全球十大摄影作品

网站开发培训排名,全球十大摄影作品,广元网站建设专业人员,沈阳男科最好的男科医院桥接模式 通过桥接模式,我们可以将业务逻辑与元素的事件解耦,也可以更灵活的创建一些对象 倘若我们有如下代码 const dom document.getElementById(#test)// 鼠标移入移出事件 // 鼠标移入时改变背景色和字体颜色 dom.onmouseenter function() { th…

桥接模式

通过桥接模式,我们可以将业务逻辑与元素的事件解耦,也可以更灵活的创建一些对象

倘若我们有如下代码

const dom = document.getElementById('#test')// 鼠标移入移出事件
// 鼠标移入时改变背景色和字体颜色
dom.onmouseenter = function() { this.style.color = 'white'this.style.backgroundColor = 'black'
}// 鼠标移出时恢复背景色和字体颜色
dom.onmouseleave = function () {this.style.color = 'black'this.style.backgroundColor = 'white'
}

这里我们不难看出有部分代码是重复的,只是改变了字体颜色跟背景色,这耦合度就高起来了,我们可以是这样

const changeColor = (dom, color, val)=>{dom.style[color] = val
}
const dom = document.getElementById('#test')
dom.onmouseenter = function () {changeColor(this, 'color', 'white')changeColor(this, 'backgroundColor', 'black')
}
dom.onmouseleave = function () {changeColor(this, 'color', 'black')changeColor(this, 'backgroundColor', 'white')
}

继续优化

const changeColor = (dom, color, val)=>{dom.style[color] = val
}
const changeColorAndBgColor = (dom, color, bgColor)=>{changeColor(dom, 'color', color)changeColor(dom, 'backgroundColor', bgColor)
}
const dom = document.getElementById('#test')
dom.onmouseenter = function () {changeColorAndBgColor(this, 'white', 'black')
}
dom.onmouseleave = function () {changeColor(this, 'black', 'white')
}

多元化

在使用不同角色有相同公用的方法时可以使用这种多元化来处理

const Speed = (x, y) => {this.x = xthis.y = y
}
Speed.prototype.run = function () { console.log('first run')
}
// TODO:其他内容
const Color = color => {this.color = color
}
Color.prototype.draw = function () {console.log('first draw')
}
// TODO:其他内容
const Speak = word => {this.word = word
}
Speak.prototype.say = function () {console.log('first say')
}
// TODO:其他内容// 创建一个 球
const Ball = function (x, y, color) {this.speed = new Speed(x, y)this.color = new Color(color)
}
Ball.prototype.init = function () {this.speed.run()this.color.draw()
}// 创建一个人
const People = function (x, y, say) {this.speed = new Speed(x, y)this.speak = new Speak(say)
}
People.prototype.init = function () {this.speed.run()this.speak.say()
}
...

通过桥接灵活的创建一个对象,针对不同的对象处理不同的业务逻辑,更灵活处理差异

http://www.yayakq.cn/news/262310/

相关文章:

  • 厦门做网站多少钱专业网站优化培训
  • 怎么在各个网站免费推广信息wordpress seo优化插件
  • 品牌网站建设小蝌蚪c小米发布会官网
  • 淮安网站开发工程师招聘网天津设计公司有哪些
  • 给网站做广告自己做h5怎么做
  • 石家庄网站免费制作冻品网站的建设背景
  • 网站源码小千个人网推广普通话写好规范字手抄报
  • 韩国网站 后缀wordpress删除谷歌自提
  • 网站页尾版权视频直播app源码
  • 最优惠的郑州网站建设免费企业网站程序上传
  • 展示型网站一样做seo优化吗即墨公司做网站
  • 情头定制网站青岛公司网站建设开发
  • 专业建设公司网站1024cctvcom戊人影祝
  • 茶叶网站建设费用明细品牌关键词优化
  • 免费网站域名查询在深圳如何注册自己的公司
  • 网站建设维护专员网站怎么建设可以发图评论
  • 网站开发需要怎么做商业设计公司
  • python做网站好处怀柔营销型网站建设
  • 厦门手机网站企业内部网站模板
  • 系统开发费用seo搜索引擎招聘
  • 二手车 网站开发膳食管理东莞网站建设
  • 网络课程教学平台有哪些seo快速排名多少钱
  • seo网站优化建议邯郸研情网络科技有限公司
  • 网站建设客源胶州专业建站
  • 深圳网站域名注册wordpress倒闭汉化组
  • 如何做建筑一体化的网站wordpress只显示部分文章
  • 南京网站设计公司推荐邯郸哪里有做网站的李
  • 网站建设淘宝山东城市建设职业学院教务网站
  • 关于网站建设的通知张向东
  • 做电影网站需要多大空间网站建设相关制度