这三个机能都再次出现在ES6中,二者相互配合得十分好!

Proxy

**proxy **是三个本地的第一类,他没特性! 它PCB了三个第一类的犯罪行为。它须要三个模块。

consttoto =newProxy(target, handler)

**target: **是指将被全权/包覆的第一类 **handler: **是全权的实用性,它将截击对最终目标的操作方式(以获取、增设等)

要不是了 proxy ,他们能建立这种的traps

consttoto = {a:55,b:66}consthandler = {get(target, prop, receiver) {if(!!target[prop]) {returntarget[prop]
}return`This${prop}prop dont exist on this object !`}
}consttotoProxy =newProxy(toto, handler)

totoProxy.a// 55totoProxy.c// This c prop dont exist on this object !

每一外部第一类的 “方式” 都有他他们的最终目标表达式

上面是三个第一类方式的条目,相等于步入了 Target:

object methodtargetobject[prop]getobject[prop] = 55setnew Object()constructObject.keysownKeys

最终目标表达式的模块能根据不同的表达式而改变。

例如,对于get表达式取(target, prop, receiver(proxy本身)),而对于set表达式取(target, prop, value (to set), receiver)

例子

他们能建立私有特性。

consttoto = {name:toto,age:25,_secret:***}consthandler = {get(target, prop) {if(prop.startsWith(_)) {thrownewError(Access denied)
}returntarget[prop]
},set(target, prop, value) {if(prop.startsWith(_)) {thrownewError(Access denied)
}
target[prop] = value// set方式返回布尔值// 以便让他们知道该值是否已被正确增设 !returntrue},
ownKeys(target, prop) {returnObject.keys(target).filter(key=

1.本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!