首页 > 其他分享 >4.4 proxy 的一些属性

4.4 proxy 的一些属性

时间:2023-04-04 10:13:43浏览次数:36  
标签:4.4 console log proxyUser age prop proxy target 属性

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);

标签:4.4,console,log,proxyUser,age,prop,proxy,target,属性
From: https://www.cnblogs.com/pansidong/p/17285445.html

相关文章

  • Android中的persistent属性
    在我们开发系统级的App时,很有可能就会用到persistent属性。当在AndroidManifest.xml中将persistent属性设置为true时,那么该App就会具有如下两个特性:在系统刚起来的时候,该App也会被启动起来该App被强制杀掉后,系统会重启该App。这种情况只针对系统内置的App,第三方安装的App不......
  • magento 获取产品的属性值
    magento采用强大的EAV设计方法,我们可以很方便的给商品添加任意数量的属性,那如何在前台获取这些属性值呢? magento同样提供了很方便的方式来读取它。使用$_product->getAttributeName()或者$_product['AttributeName']就可以获得指定名字属性的值,以颜色属性color为例,可以这样写 ......
  • ArcEngine|按属性查询
    按属性查询界面设计思路该属性查询界面思路如下:首先选择按属性查询方法,并打开功能界面;接着在“图层”下拉框中选择图层;图层选择好后,可从“字段”中选择该图层对应的查询字段,并可查看该字段的唯一值;使用按钮输入SQL查询语句,并可在下方的文本框中查看输入的SQL语句;命令编写完成......
  • Spring 类型转换详解,SpringBean创建时属性类型转换源码详解
    文章目录一、概述1、Spring类型转换的实现2、使用场景3、源码分析二、基于JavaBeans接口的类型转换1、代码实例2、Spring內建PropertyEditor扩展ByteArrayPropertyEditor3、自定义PropertyEditor扩展整合到springframework代码实例SpringPropertyEditor的设计缺陷三、Spr......
  • vue指令之属性指令
    目录属性指令示例属性指令标签上的属性可以绑定变量,变量变化,属性也会变化#什么是属性?比如:href/src/name/value/class/style...语法:v-bind:属性名="变量名"简写:属性名="变量名"示例<body><divid="app"><av-bind:href="url">点我</a>......
  • JS Iterator属性
    Iterator的作用:为各种数据结构,提供一个统一的、便捷的访问接口使得数据结构的成员能够按照某种次序排列es6创造了一种新的遍历命令for...of循环,Iterator主要供for...of循环ES6规定,默认的Iterator接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有S......
  • CSS文本属性(文本颜色、文本对齐、装饰文本、文本缩进、行间距)
    本博文介绍CSS中常用的文本属性,包括文本颜色、文本对齐、装饰文本、文本缩进和行间距。属性说明属性值color文本颜色颜色(如red、green)#十六进制(如#ff0000)rgb代码(如rgb(255,0,0))text-align文本对齐left(默认值,左对齐)right(右对齐)center(水平居中)text-decora......
  • 25-springboot-thymeleaf的常见属性
    th:action<formid="login"th:action="@{/login}">......</form>th:method<formid="login"th:action="@{/login}"th:method="post">......</form>th:href<a class="login"......
  • 看懂CSS属性值定义语法
    CSS属性值有专门的一套定义语法,同来表达CSS语法的合法组成。例如线性渐变的语法为:linear-gradient([<angle>|to<side-or-corner>,]?<color-stop-list>)如果你不理解CSS的定义语法,那相信是很难阅读上面这串代码的,我们接着往下看。为什么要学习定义语法?如果你也经常写......
  • Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“Schedu
    标题:MicrosoftSQLServerManagementStudio对象“Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“ScheduleRecurrenceAndTimes”发生以下异常:“对象“Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“StartTimeOfD......