Ade*_*uyi 4 javascript proxy ecmascript-6 es6-proxy
我最近了解了ES6代理,但我没有看到使用它的充分理由.我的意思是,除非我遗漏了什么,否则可以在没有它的情况下完成所有可以使用Proxy的事情.
例如,大多数人谈论代理时的验证,但可以应用一些JS优点来验证,每个人都很好.如果有人可以睁开眼睛看看代理的一些主要用例,我将不胜感激.谢谢!
T.J*_*der 15
我的意思是,人们可以用代理做的每一件事都可以在没有它的情况下完成......
这不是真的.
考虑捕获对不存在的属性的访问的常见需求:
const o = {foo: "bar"};
console.log(o.blarg);
Run Code Online (Sandbox Code Playgroud)
通常希望以默认的方式处理它,即记录undefined
.代理让我们通过get
陷阱来做到这一点.例:
const o = {foo: "bar"};
const p = new Proxy(o, {
get(target, prop, receiver) {
return prop in target ? target[prop] : "nifty!";
}
});
console.log(p.foo);
console.log(p.blarg);
Run Code Online (Sandbox Code Playgroud)
另一个例子是能够挂钩获取对象属性列表的各种操作.没有代理就没有办法挂钩.使用 Proxy,很容易:根据要挂钩的内容,使用has
陷阱或ownKeys
陷阱.
就其他用例而言:代理是实现Facade模式的终极工具.查看Facade的用例,您将找到Proxy的用例.
归档时间: |
|
查看次数: |
1114 次 |
最近记录: |