当前位置: 首页 > 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/336278.html

相关文章:

  • 公司网站备案需要什么广告投放价目表
  • 建网站报价汕头网站建设方案开发
  • 门户网站和网站的区别小网站
  • 没有网站做APP微信小程序开发工具
  • 石家庄网络建站产品seo是什么意思
  • 网站制作 代码广告关键词排名
  • 网站意见反馈源码广州番禺发布
  • 机械网站模板青岛seo招聘
  • 企业网站后台管理seo快速排名软件价格
  • wordpress中文主题站跨境电商
  • 社保减员要怎么做 国税局网站搜索引擎营销怎么做
  • wordpress主题手机制作教程seo外链是什么意思
  • 绿色配色的企业网站网站推广排名服务
  • 网站建设续费催款通知书优化是什么意思?
  • axure怎么做网站的抽屉导航营销型高端网站建设
  • 专门做产品推广ppt的网站东莞网站公司哪家好
  • 创客贴网站做海报技能最近一周热点新闻
  • 做书的封面的网站素材关键词排名seo
  • 国内最好的软件网站建设有哪些免费推广软件
  • 长春长春网站建设网杭州百度公司在哪里
  • 龙港做网站百度seo优化多少钱
  • 宁波 网站建设青岛seo服务
  • 南通哪里有做网站的附近的计算机培训班
  • 网站开发论文说明pc网站优化排名
  • 芜湖市网站建设广东东莞最新疫情
  • 网站建设 后台上海百度seo
  • 沈阳营销型网站制作百度app免费下载安装最新版
  • 深圳专门做网站的公司有哪些东营网站建设哪家更好
  • wordpress整站数据百度秒收录
  • 固始做网站的公司长沙网站优化推广