let obj={name:'tom'}// 用proxy代理objlet proxy=newProxy(obj,{//proxy.name的返回值get(target,name,reciever){return'shift'}})
console.log(obj.name)//tom
console.log(proxy.name)//shift
明白了吧,proxy的任务就是代理obj,
那都能代理obj的哪些方法呢
2.1 get(target,propKey,receiver)//获取对象的属性
上面举了例子了
2.2 set(target,propKey,newValue,receiver)//设置属性的值
let obj={name:'tom'}let proxy=newProxy(obj,{set(target,propKey,newValue,reciever){//如果设置proxy.name,就执行下边这句话,把obj.name改为'hahaha'target[propKey]='hahaha'}})
proxy.name='new Tom'//这里设置name的新值为newTOm
console.log(proxy.name)//hahaha,但最终打印出来的是hahaha
2.3 has(target,propKey)//代理查询属性操作,propKey in obj的操作
let obj={name:'name'}let proxy=newProxy(obj,{has(target,propKey){if(propKey==='age'){returntrue}}})
console.log(age in obj)//false,obj里面没有age属性,所以返回false
console.log(age in proxy)//true,proxy里面也灭有age,但是我们拦截覆写了has方法,让他返回rue
Spring Boot – CrudRepository 和 JpaRepository 之间的区别
Spring Boot建立在 Spring 之上,包含 Spring 的所有功能。由于其快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置和设置,因此如今它正成为开发人员…
继上一篇
Linux Red Hat 7.9 Server安装GitLab-CSDN博客
安装好gitlab,启用管理员root账号后,开始创建用户账户
1、创建用户账户
进入管理后台页面 点击 New User 输入用户名、邮箱等必填信息和登录密码 密码最小的8位,不然会不通过 拉到…