缘起
最近看好多童鞋私下问我这方面的问题,正好有点时间,小编写了篇文章科普下!
proxy与Reflect关系
相通点: api相通,经常混合使用
不同点:proxy可以看做是代理,中间件,Reflect是操作对象提供的api,可以看做是Object的升级版,增加兼容性,对浏览器和用户友好!
proxy中较难的点
proxy具体大家可以看文档,较难的点其实就是如何代理函数,下面大家花点时间认真阅读。
这里我们看2个API
- apply
- construct
apply是调用拦截,简单来说就是调用的时候拦截
示例1:
var target = function () { return 'target'; };
var handler = {
apply: function () {
return 'proxy';
}
};
var p = new Proxy(target, handler);
p() // "proxy"
示例2:
var handler = {
apply (target, ctx, args) {
console.log(args)
return Reflect.apply(...arguments);
}
};
var target = function () { return 'target'; }