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

com是什么网站中国建设银行假网站

com是什么网站,中国建设银行假网站,企业建设网站是网络营销吗,嘉兴企业网站推广1. 什么是Proxy Proxy是ES6中新增的一个特性#xff0c;它可以拦截对象的操作#xff0c;提供了一个中间层来控制对目标对象的访问。简单来说#xff0c;它可以对对象进行代理#xff0c;从而实现对对象的监控、修改、过滤等操作。 2. 为什么出现Proxy 在JavaScript中它可以拦截对象的操作提供了一个中间层来控制对目标对象的访问。简单来说它可以对对象进行代理从而实现对对象的监控、修改、过滤等操作。 2. 为什么出现Proxy 在JavaScript中对象的属性可以被任意修改这就会导致一些安全问题和难以调试的问题。Proxy的出现就是为了解决这些问题它可以拦截对象的操作从而实现对对象的监控和控制。 3. 怎么使用Proxy 使用Proxy需要创建一个Proxy对象它接收两个参数目标对象和一个处理程序对象。处理程序对象中定义了一些拦截器方法用于拦截目标对象的操作。 下面是一个简单的例子 let target {name: Tom,age: 18 };let handler {get(target, propKey) {console.log(get操作);return target[propKey];},set(target, propKey, value) {console.log(set操作);target[propKey] value;} };let proxy new Proxy(target, handler);console.log(proxy.name); // 输出get操作 Tom proxy.age 20; // 输出set操作 console.log(proxy.age); // 输出get操作 20在上面的例子中我们创建了一个目标对象target和一个处理程序对象handler然后使用它们来创建了一个代理对象proxy。在代理对象中我们定义了get和set拦截器方法用于拦截目标对象的读取和修改操作。当我们对代理对象进行读取和修改操作时会触发相应的拦截器方法。 4. 解决什么问题 使用Proxy可以解决一些安全问题和难以调试的问题例如 对象的属性可以被任意修改使用Proxy可以控制对对象的修改操作。对象的属性访问不够直观使用Proxy可以实现对属性访问的监控和控制。对象的属性访问不够安全使用Proxy可以实现对属性访问的过滤和检查。 5. Proxy的API和Proxy实例的讲解 Proxy提供了一些API和实例方法用于实现对目标对象的拦截和控制。下面是一些常用的API和实例方法 Proxy.revocable(target, handler)创建一个可撤销的代理对象。Proxy.isRevoked(proxy)判断一个代理对象是否已经被撤销。Proxy.apply(target, thisArg, args)拦截函数的调用操作。Proxy.construct(target, args)拦截new操作符。Proxy.defineProperty(target, propKey, propDesc)拦截Object.defineProperty()操作。Proxy.deleteProperty(target, propKey)拦截delete操作。Proxy.get(target, propKey, receiver)拦截属性读取操作。Proxy.set(target, propKey, value, receiver)拦截属性设置操作。Proxy.has(target, propKey)拦截in操作符。Proxy.getOwnPropertyDescriptor(target, propKey)拦截Object.getOwnPropertyDescriptor()操作。Proxy.getPrototypeOf(target)拦截Object.getPrototypeOf()操作。Proxy.setPrototypeOf(target, proto)拦截Object.setPrototypeOf()操作。Proxy.isExtensible(target)拦截Object.isExtensible()操作。Proxy.preventExtensions(target)拦截Object.preventExtensions()操作。Proxy.ownKeys(target)拦截Object.getOwnPropertyNames()和Object.getOwnPropertySymbols()操作。 1. Proxy构造函数 Proxy构造函数用于创建一个代理对象它接收两个参数目标对象和handler对象。其中目标对象是被代理的对象handler对象包含了一系列拦截器方法用于拦截目标对象的各种操作。 下面是Proxy构造函数的基本使用流程和思路 const target {}; // 目标对象 const handler {}; // handler对象const proxy new Proxy(target, handler); // 创建代理对象在上面的代码中我们创建了一个空对象作为目标对象并创建了一个空对象作为handler对象。然后我们使用Proxy构造函数创建了一个代理对象proxy它将目标对象target和handler对象绑定在一起。 2. handler对象 handler对象包含了一系列拦截器方法用于拦截目标对象的各种操作。这些方法在代理对象proxy被访问时被调用它们接收两个参数目标对象和操作参数。 下面是handler对象的基本使用流程和思路 const handler {get(target, key) {console.log(Getting ${key} from target);return target[key];},set(target, key, value) {console.log(Setting ${key} to ${value});target[key] value;},// 其他拦截器方法 };const proxy new Proxy({}, handler); // 创建代理对象在上面的代码中我们定义了两个拦截器方法get和set它们分别用于拦截目标对象的读取和写入操作。当代理对象proxy被访问时这些方法会被调用并输出相应的信息。 3. Proxy实例的API基本使用流程和思路 除了上面提到的get和set方法之外handler对象还包括了许多其他拦截器方法用于拦截目标对象的各种操作。下面是一些常用的拦截器方法及其基本使用流程和思路 get get方法会在读取属性时被调用它接收三个参数target、prop和receiver。其中target表示被代理的对象prop表示被访问的属性名receiver表示操作发生的对象。在get方法中我们可以返回任何值以便代理对象继续执行后续操作。如果我们不想让属性被访问可以抛出一个错误。 const handler {get: function(target, prop, receiver) {console.log(Getting ${prop});if (prop password) {throw new Error(Access denied);}return Reflect.get(target, prop, receiver);} };在上面的代码中我们对password属性进行了限制如果访问该属性就会抛出一个错误。 set set方法会在设置属性时被调用它接收四个参数target、prop、value和receiver。其中target表示被代理的对象prop表示要设置的属性名value表示要设置的属性值receiver表示操作发生的对象。在set方法中我们可以对属性值进行修改或者抛出一个错误以阻止属性值被设置。 const handler {set: function(target, prop, value, receiver) {console.log(Setting ${prop} to ${value});if (prop password) {throw new Error(Access denied);}return Reflect.set(target, prop, value, receiver);} };在上面的代码中我们对password属性进行了限制如果设置该属性就会抛出一个错误。 has has方法会在判断属性是否存在时被调用它接收两个参数target和prop。其中target表示被代理的对象prop表示要判断的属性名。在has方法中我们可以返回一个布尔值表示属性是否存在。 const handler {has: function(target, prop) {console.log(Checking if ${prop} exists);return Reflect.has(target, prop);} };在上面的代码中我们输出了一个日志然后调用了Reflect.has方法来判断属性是否存在。 apply方法用于拦截函数的调用操作。 const handler {apply(target, thisArg, args) {console.log(Calling ${target.name} with arguments: ${args});return target.apply(thisArg, args);}, };function sum(a, b) {return a b; }const proxy new Proxy(sum, handler);proxy(1, 2); // 输出 Calling sum with arguments: 1,2在上面的代码中我们定义了一个拦截器方法apply它用于拦截函数的调用操作。当代理对象proxy被调用时这个方法会被调用并输出相应的信息。 getPrototypeOf方法用于拦截获取目标对象的原型操作。 const handler {getPrototypeOf(target) {console.log(Getting prototype of target);return Object.getPrototypeOf(target);}, };const obj {}; const proxy new Proxy(obj, handler);Object.getPrototypeOf(proxy); // 输出 Getting prototype of target在上面的代码中我们定义了一个拦截器方法getPrototypeOf它用于拦截获取目标对象的原型操作。当代理对象proxy被访问时这个方法会被调用并输出相应的信息。 has方法用于拦截in操作符的操作。 const handler {has(target, key) {console.log(Checking if ${key} is in target);return key in target;}, };const obj { a: 1 }; const proxy new Proxy(obj, handler);a in proxy; // 输出 Checking if a is in target在上面的代码中我们定义了一个拦截器方法has它用于拦截in操作符的操作。当代理对象proxy被访问时这个方法会被调用并输出相应的信息。 deleteProperty方法用于拦截delete操作符的操作。 const handler {deleteProperty(target, key) {console.log(Deleting ${key} from target);delete target[key];}, };const obj { a: 1 }; const proxy new Proxy(obj, handler);delete proxy.a; // 输出 Deleting a from target在上面的代码中我们定义了一个拦截器方法deleteProperty它用于拦截delete操作符的操作。当代理对象proxy被访问时这个方法会被调用并输出相应的信息。 6. Proxy的使用场景 使用Proxy可以实现很多功能例如 实现数据绑定可以通过拦截属性设置操作来实现数据绑定。实现数据校验可以通过拦截属性设置操作来实现数据校验。实现数据缓存可以通过拦截属性读取操作来实现数据缓存。实现缓存代理可以通过拦截函数调用操作来实现缓存代理。 7. Proxy的注意事项 使用Proxy需要注意以下几点 Proxy不支持原型继承即代理对象不能继承原始对象的原型链。Proxy不支持一些内置方法的代理例如toString()、valueOf()等方法。Proxy不支持直接修改代理对象必须通过拦截器方法进行修改。Proxy的拦截器方法中必须返回一个合法的值否则会报错。
http://www.hkea.cn/news/14260472/

相关文章:

  • 网站建设公司seo关键词哈尔滨建设网站哪家专业
  • 做的比较炫的网站app开发流程 网站开发
  • 建设招聘网站需要注册什么证注册城乡规划师有用吗
  • 厦门建设管理局网站电子商务网站建设与管理试卷6
  • 课程网站设计建设免费的软件网站建设
  • 网站验证图标样本代替做网站
  • 网站一个人可以做吗网站建设中端口号的作用是什么
  • 外贸网站好做吗seo流量排名门户
  • 枣庄网站设计广州有几个区几个县级市
  • 永久免费建站空间wordpress新手教程
  • 网站布局选择淘宝网站开发成本
  • 网站推广是网站建设完成之后的长期工作如何注册电商平台
  • 海外网站空间做网站开发背景
  • 做网站需要用到哪些编程知识免费好用的crm系统
  • vs2010网站开发视频有wordpress使用经验
  • 做课件的软件下载带有蓝色的网站店铺设计图片
  • 国外优秀电商网站绘本馆网站建设
  • 永灿网站建设公司铜排制作 东莞
  • 移动端网站的重要性闲鱼怎么做钓鱼网站
  • 那个网站做二手车好seo搜索引擎优化介绍
  • 茶陵网站建设做网站免费
  • 网站项目风险如何搭建网站平台
  • 北海建设厅网站网页设计与制作教程第三版课后答案
  • 网站目录权限 user网站设计培训班老师
  • asp.net 网站安装包小企业想做网站推广找哪家强
  • 塘沽建设网站公司网站管理建设工作
  • 网站百度快照wordpress关闭错误提示
  • 网站建设数据的保密性河南制作网站公司
  • 免费推广预期效果济南seo推广
  • 空调公司网站建设code snippets wordpress