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

忻州网站建设公司磁力狗在线引擎

忻州网站建设公司,磁力狗在线引擎,wordpress可视编辑,制作网页教程简单介绍 使用者无权访问目标对象中间加代理,通过代理做授权和控制 UML类图 传统UML类图 简化UML 代码演示 class ReadImg {constructor(fileName) {this.fileName fileNamethis.loadFromDisk() // 初始化即从硬盘中加载,模拟}display() {console.l…

介绍

  • 使用者无权访问目标对象
  • 中间加代理,通过代理做授权和控制

UML类图

  • 传统UML类图
    传统UML类图

  • 简化UML
    简化UML

代码演示

class ReadImg {constructor(fileName) {this.fileName = fileNamethis.loadFromDisk() // 初始化即从硬盘中加载,模拟}display() {console.log('display...' + this.fileName)}loadFromDisk() {console.log('loading...' + this.fileName)}
}class ProxyImg {constructor(fileName) {this.realImg = new ReadImg(fileName)}display() {this.readImg.display()}
}// test 
let proxyImg = new ProxyImg('1.png')
proxyImg.display()

场景

网页事件代理

<div id="div1"><a href="#">a1</a><a href="#">a2</a><a href="#">a3</a><a href="#">a4</a>
</div>
<button>点击增加一个a标签</button><script>
var div1 = document.getElementById('div1')
div1.addEventListener('click', function(e) {var target = e.targetif (e.nodeName === 'A') {alert(target.innerHTML)}
})
</script>

jQuery.$.proxy代理

$('#div1').click(function() {// this 符合期望$(this).addClass('red')
})
$('#div1').click(function() {setTimeout(function() {// this 不符合期望$(this).addClass('red')}, 1000);
});// 可以用如下方式解决
$('#div').click(function() {var _this = thissetTimeout(function() {// _this符合期望$(_this).addClass('red')}, 1000);
});// 但推荐使用$.proxy解决,这样就少定义一个变量
$('#div1').click(function() {setTimeout($.proxy(function() {// this 符合期望$(this).addClass('red')}, this), 1000);                                                         
})// 上面函数的另一种写法
$('#div1').click(function() {var fn = function() {$(this).css('background-color', 'yellow')}fn = $.proxy(fn, this)setTimeout(fn, 1000)
})
  • ES6 Proxy
// 明星
let star = {name: '张xx',age: 25,phone: '16285838800'
}// 经纪人
let agent = new Proxy(star, {get: function (target, key) {if (key === 'phone') {// 返回经纪人自己的手机号return '18611112222'}if (key === 'price') {// 明星不报价,经纪人报价return 120000}return target[key]},set: function (target, key, val) {if (key === 'customPrice') {if (val < 100000) {// 最低 10wthrow new Error('价格太低')} else {target[key] = valreturn true}}}
})// test 
console.log(agent.name)
console.log(agent.age)
console.log(agent.phone)
console.log(agent.price)agent.customPrice = 150000

设计原则验证

  • 代理类和目标类分离,隔离开目标类和使用者
  • 符合开放封闭原则

代理模式vs适配器模式

  • 适配器模式:提供一个不同的接口
  • 代理模式:提供一模一样的接口

代理模式VS装饰器模式

  • 装饰器模式:扩展功能,原有功能不变且可直接使用
  • 代理模式:显示原有功能,但是经过限制或者阉割之后的
http://www.dtcms.com/wzjs/107674.html

相关文章:

  • 网站滚动字幕代码优化营商环境 助推高质量发展
  • 足彩网站建设上海seo优化
  • 做网站的大骗子流量主广告点击自助平台
  • 男的做那个视频网站自己建网站需要钱吗
  • 哪些公司做企业网站百度搜索引擎推广怎么弄
  • wordpress 老萨seo优化的基本流程
  • 兰州网站建设怎么选我要发布信息
  • 经典网站设计案例代运营公司前十名
  • 部门网站建设的目的和意义seo网站推广技术
  • 天元建设集团有限公司 田新鹏seo优化思路
  • 网站直播间 是怎么做的百度竞价排名模式
  • 如何打开网站的源代码制作一个网站的基本步骤
  • 网站站点建立软文写作是什么
  • 大专ui设计师工资一般多少合肥全网优化
  • win7系统可以做网站吗网站seo规划
  • 建网站需要多少钱和什么条件才能建提高网站流量的软文案例
  • 有没有做公章的网站东莞百度seo推广公司
  • 网站的推广方式组合南通百度网站快速优化
  • 企业官方网站制作推广软件最好的免费推广平台
  • 外贸网站建设步骤新东方雅思培训机构官网
  • 网站开发公司模板淘宝关键词优化怎么弄
  • 好项目找投资人免费平台宁波seo深度优化平台有哪些
  • 电商网站怎样做优化才最合理网络营销的平台有哪些
  • 做高端网站的网络公司青岛网站
  • b2b网站的分类推广图片制作
  • 白云商城型网站建设深圳网站营销seo电话
  • 黑彩网站建设网站优化分析
  • ui设计培训班怎么样关键词优化方法
  • wordpress浏览pdf百度seo快速排名
  • 买布自己做网站衣服的百度网盘下载官网