ES6-Proxy 拦截器
2019-06-25 本文已影响0人
gitblong
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Proxy</title>
</head>
<body>
<script>
//Proxy的使用方式
let obj = new Proxy({}, {
get(target,key,receiver){
console.log("getting",target,key,receiver);
return Reflect.get(target,key,receiver);
},
set: function (target,key,value,receiver) {
console.log("setting",target,key,value,receiver);
return Reflect.set(target, key, value, receiver);
}
});
obj.count = 1;
++obj.count;
console.log("???",obj.count);
//Proxy实例可作为其他对象的原型对象
let objPrototype = new Proxy({},{
get:function (target, property) {
return 35;
}
});
let extendProxyObj = Object.create(objPrototype);
let time = extendProxyObj.time;
console.log(time);//35 因为对象上无初始值,所以使用原型链上提供的值
extendProxyObj.time = 10;
console.log(extendProxyObj.time,extendProxyObj);//10 {time: 10},该对象上有值了
</script>
</body>
</html>