首页 >

es6代理模式是什么

web前端|前端问答es6代理模式是什么
es6
web前端-前端问答
手机拍卖网站源码,用vs还是vscode,ubuntu 系统权限,tomcat改启动方式,sqlite3中查找数据,爬虫自动化浏览器推荐,php 安卓接口,深圳天企网络seo,静态网站有后台吗,手机影视模板免费下载lzw
es6代理模式是什么
sencha touch 源码,vscode格式化空路径问题,ubuntu 代理翻墙,不能同时启动多个tomcat,sqlite 日期对比,南阳网页设计招聘,阿里云服务器如何登录,discuz付费插件破解,微前端框架app,微博情侣爬虫,php大师,天津seo技术培训,药业网站源码,简易信息录入管理网页模板,友盟网站模板,关于我们的 页面模板,Bui管理系统模板,简单数据库小程序lzw
代理模式(英语:Proxy Pattern)是程序设计中的一种设计模式。
外卖人源码8.6,vscode左右显示代码,ubuntu关闭硬件,tomcat原理动作讲解,sqlite3自动递增列,适合爬虫用的笔记本鼠标,php post函数,外贸seo营销ppt广告,如何用服务器搭建杰奇小说网站,badmin模板lzw
所谓的代理者是指一个类别可以作为其它东西的接口。代理者可以作任何东西的接口:网络连接、内存中的大对象、文件或其它昂贵或无法复制的资源。

而在JavaScript中代理模式的具体表现形式就是ES6中的新增对象—Proxy

Proxy 的解释是:

Proxy对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。

简单来说: Proxy 对象就是可以让你去对JavaScript中的一切合法对象的基本操作进行自定义.然后用你自定义的操作去覆盖其对象的基本操作.也就是当一个对象去执行一个基本操作时,其执行的过程和结果是你自定义的,而不是对象的.

:sweat:好吧,用文字表达可能太复杂了.我们还是直接上代码吧.

Proxy的语法是:

let p = new Proxy(target, handler);

target 是你要代理的对象.它可以是JavaScript中的任何合法对象.如: (数组, 对象, 函数等等)

handler 是你要自定义操作方法的一个集合.

p 是一个被代理后的新对象,它拥有 target 的一切属性和方法.只不过其行为和结果是在 handler 中自定义的.

然后让我们来看这段代码:

let obj = { a: 1, b: 2,} const p = new Proxy(obj, { get(target, key, value) {  if (key === 'c') {   return '我是自定义的一个结果';  } else {   return target[key];  } },  set(target, key, value) {  if (value === 4) {   target[key] = '我是自定义的一个结果';  } else {   target[key] = value;  } }})console.log(obj.a) // 1console.log(obj.c) // undefinedconsole.log(p.a) // 1console.log(p.c) // 我是自定义的一个结果obj.name = '李白';console.log(obj.name); // 李白obj.age = 4;console.log(obj.age); // 4p.name = '李白';console.log(p.name); // 李白p.age = 4;console.log(p.age); // 我是自定义的一个结果

从上面这段代码中,我可以很清楚的看到 Proxy 对象的作用.即是之前所受的 用于定义基本操作的自定义行为 .同样的 get 和 set 操作.没有没代理的对象所得的结果是其JavaScript本身的执行机制运行计算后所得到的.而被代理了的对象的结果则是我们自定义的.

Proxy的兼容性如下:

es6代理模式是什么


  • 暂无相关文章
  • Posted in 未分类