es6 Proxy
来源:互联网 发布:淘宝客服接待人特别少 编辑:程序博客网 时间:2024/05/21 14:43
let user={
name:"hkj",
age:'20'
}
let pro= new Proxy(user,{
get(target,key){//拦截获取属性操作
return target[key].replace("hkj","aaaa");
},
set(target,key,value){//拦截设置属性操作
if(key=='name'){
return target[key]=value;
}else{
return target;
}
},
has(target,key){//拦截key in Object操作
if(key=='name'){
return true;
}else{
return false;
}
},
deleteProperty(target,key){//拦截删除操作
if(key.indexOf('n')==0){
delete target[key];
return true;
}else{
return target;
}
},
//拦截Object的ownKeys函数
ownKeys(target){
return Object.keys(target).filter((item)=>item!='age');
}
});
console.log(pro.name);
pro.name="hukai";
console.log(pro.name);
console.log('name' in pro);
console.log('age' in pro);//age被判断
delete pro.name;
console.log(pro);
pro.name="hkj";
console.log(Object.keys(pro));//pro只有name属性,age已被拦截
//reflect
console.log(Reflect.get(user,'name'));
Reflect.set(user,'name','hukai');
console.log(Reflect.get(user,'name'));
console.log(Reflect.has(user,'name'));
name:"hkj",
age:'20'
}
let pro= new Proxy(user,{
get(target,key){//拦截获取属性操作
return target[key].replace("hkj","aaaa");
},
set(target,key,value){//拦截设置属性操作
if(key=='name'){
return target[key]=value;
}else{
return target;
}
},
has(target,key){//拦截key in Object操作
if(key=='name'){
return true;
}else{
return false;
}
},
deleteProperty(target,key){//拦截删除操作
if(key.indexOf('n')==0){
delete target[key];
return true;
}else{
return target;
}
},
//拦截Object的ownKeys函数
ownKeys(target){
return Object.keys(target).filter((item)=>item!='age');
}
});
console.log(pro.name);
pro.name="hukai";
console.log(pro.name);
console.log('name' in pro);
console.log('age' in pro);//age被判断
delete pro.name;
console.log(pro);
pro.name="hkj";
console.log(Object.keys(pro));//pro只有name属性,age已被拦截
//reflect
console.log(Reflect.get(user,'name'));
Reflect.set(user,'name','hukai');
console.log(Reflect.get(user,'name'));
console.log(Reflect.has(user,'name'));
阅读全文
0 0
- ES6 proxy
- 【ES6】Proxy
- ES6 Proxy
- es6-Proxy
- es6-Proxy
- ES6-proxy
- es6 Proxy
- 【ES6】Proxy
- ES6--Proxy和Reflect
- ES6 Proxy/Reflect 浅析
- ES6 -- 最佳代理:Proxy
- ES6 -- Proxy搭档:Reflect
- ES6总结--Proxy、Reflect
- 【ES6】拦截器 Proxy
- ES6之Proxy
- ES6 Proxy杂记
- es6 javascript的Proxy.revocable()
- 十二,ES6 新增Proxy代理
- teacher-student network
- java中对Redis的缓存进行操作
- Andrew Ng的machine learning课程week3编程题python实现
- 第九周 项目3 利用二叉树遍历思想解决问题
- 启明星第六周学习总结
- es6 Proxy
- word2vec的详细实例介绍(包含jieba分词提供的语料)
- linux 系统运行级别一般为 0-6,请分别写出每个级别的含义
- Linux实验三
- openstack安装Apache HTTP后却无法启动它
- Openjudge 1.13 50树根
- Matplotlib可视化库的使用
- 学习记录1
- 拼接接口