ES6 Reflect(反射) Proxy(代理。拦截器)

LogicLuminaryX
• 阅读 3304

Reflect(反射)

Reflect Proxy 一样都是 es6 用来操作对象的API(接口)

var obj={
    name:'shi',
    age:19,
    sex:'女'
}
//obj.school="师徒"
//Object.defineProperty(obj,"school",{value:"师徒"});
Reflect.defineProperty(obj,"school",{value:"师徒"});
console.log(obj);//Object {name: "shi", age: 19, sex: "女", school: "师徒"}

2.让object的操作都变成函数行为


//delete obj.age
console.log(obj);//Object {name: "shi", sex: "女", school: "师徒"}
Reflect.deleteProperty(obj,'age');

console.log('sex' in obj);//true
console.log(Reflect.has(obj,'sex'));//true

Proxy(代理。拦截器)

直接操作
    var obj={
    name:'shi',
    age:19,
    sex:'女'
}
obj.name="shishi";
console.log(obj.age);//19
console.log(obj);//Object {name: "shishi", age: 19, sex: "女"}*/
代理操作
var obj={
    name:'shi',
    age:19,
    sex:'女'
}
var proxObj=new Proxy(obj,{
    //赋值
    sex:function(target,key,value){
        if(value!="shi1shi"){
            target[key]=value;
            
        }
    },
    //取值
    get:function(targer,key){
        if(targer[key]==undefined){
            return "没有该属性"
        }
    }
});
proxObj.name="shishi";
console.log(proxObj);//{name: "shishi", age: 19, sex: "女"}
console.log(proxObj.legs);//没有该属性
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java反射
packagecom.reflect;importjava.lang.reflect.InvocationTargetException;/\\\反射学习\反射的功能就是类、对象,可以通过反射获取里面的方法、属性的功能\@authorAdministrator\\/public
Stella981 Stella981
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
List的Select 和Select().tolist()
List<PersondelpnewList<Person{newPerson{Id1,Name"小明1",Age11,Sign0},newPerson{Id2,Name"小明2",Age12,
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
ES6中数组方法( every 和 some )
判断对象数组中每个人是否成年,大于17成年,否则未成年vararr{name:'jerry',sex:'man',age:14},{name:'jack',sex:'woman',age:19},{name:'bill',sex:'ma
Wesley13 Wesley13
3年前
ES6入门系列
  Reflect  是ES6为了操作对象而提供的新的API,目的是:1.将Object上一些明显属于语言内部的方法,比如Object.defineProperty 放到Reflect对象上现阶段某些方法同时在Object , Reflect上部署, 未来的新方法将只在Reflect对象上部署,也就是说从Reflect对
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
LogicLuminaryX
LogicLuminaryX
Lv1
找一方净土,守一份剩下流年,看一段岁月安好。
文章
2
粉丝
0
获赞
0