首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >ES6内置对象Proxy代理数据demo

ES6内置对象Proxy代理数据demo

作者头像
peng_tianyu
发布于 2022-12-15 17:46:42
发布于 2022-12-15 17:46:42
3360
举报
文章被收录于专栏:前端开发随记前端开发随记
代码语言:javascript
复制
首先在页面上定义几个按钮并绑定点击事件

代码语言:javascript
复制
<button onclick="asc()">升序</button>
<button onclick="desc()">降序</button>
<button onclick="reset()">重置</button>

需要网络请求数据这里引入jquery

代码语言:javascript
复制
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

入口函数进行网络请求并对请求的数据进行代理

代码语言:javascript
复制
let proxy

window.onload = async function() {
  const data = await $.ajax({type: "GET", url: ""})
  proxy = new Proxy({}, {
    get(target, key) {
      if(key === 'asc') { //升序排序
        return [].concat(data).sort((a, b) => a.name > b.name ? 1 : -1)
      } else if(key === 'desc') { //降序排序
        return [].concat(data).sort((a,b) => b.name > a.name ? 1 : -1)
      } else { //默认
		return data
      }
    }
  })
}

function asc() {
  let a = proxy.asc
  console.log(a)
}

function desc() {
  let b = proxy.desc
}

function reset() {
  let c = proxy.default
}
代码语言:javascript
复制
点击按钮触发函数后执行proxy.asc会触发代理对象的get函数,返回的就是处理完成的数据
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档