4.4 proxy 的一些属性
var user = {
id : 1,
name : 'Tom',
age : 10,
school : 'primary school',
sister:{
name:'Alice',
age:12
}
}
var handler = {
get(target,prop){
if(prop == 'id'){
return undefined;
}
//return target[prop];
return Reflect.get(target,prop);
},
set(target,prop,value){
if(prop == 'id' || prop == 'name' ){
console.log(`Property ${prop} modification is not allowed.`)
}else{
//target[prop] = value;
return Reflect.set(target,prop,value);
}
},
deleteProperty(target,prop){
console.log('deleteProperty is called');
return Reflect.deleteProperty(target,prop);
}
};
var proxyUser = new Proxy(user,handler);
// console.log(proxyUser)
// console.log(proxyUser.id); //undefined
// console.log(proxyUser.name); // Tom
// console.log(proxyUser.age); //10
// console.log(proxyUser.school); //primary school
// console.log(proxyUser.sister.age); //12
// 改变属性值
// proxyUser.id = 2; //Property id modification is not allowed.
// proxyUser.name = 'Jack'; //Property name modification is not allowed.
// proxyUser.age = 9;
// proxyUser.sister.age = 13;
// console.log(user);// 改变proxyUser,user里面的值也变了
// 新增属性
// proxyUser.gender = 'boy';
// console.log(user);
// delete proxyUser.age;
// console.log(user);
proxyUser.sister.age=14;//内层对象属性值更改ok
console.log(user.sister.age);
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2018-04-04 微信测试账户
2018-04-04 crontab 定期拉取代码
2018-04-04 git revert HEAD