美文网首页
对象代理(数据隐私保护)

对象代理(数据隐私保护)

作者: 罂粟1995 | 来源:发表于2018-06-09 20:25 被阅读0次

学c++和java的时候,我们都可以快速方便地定义私有属性,但在js里面要定义私有属性就比较麻烦了。

es5中可以依靠Object.defineProperty()这个方法定义私有属性。

         var Person = {
            name:'haha',
            age:15
          }

          Object.defineProperty(Person,'sex',{
            writable:false,//设为只读
            value:'male'
          });

          try{
            Person.sex = 'female';
            console.log(Person.sex);//sex属性还是male,并没有被改掉
          }catch(e){
            console.log(e);
          }

在es6中我们可以使用对象代理,中间加个代理层来定义私有属性。

         let Person = {
            name:'haha',
            sex:'male',
            age:15
          };

          let person = new Proxy(Person,{
            get(target,key){
              return target[key]
            },
            set(target,key,value){
              if(key!=='sex'){
                target[key]=value;
              }
            }
          });

          try{
            person.sex = 'female';
            console.log(Person.sex);//sex属性还是male,并没有被改掉
          }catch(e){
            console.log(e);
          }

Proxy是es6提供的新方法。
使用代理的方式,用户操作的其实是person,而不是Person,这种方式可以在代理层中定义很多逻辑复杂的拦截规则,但是不会影响原始对象数据,是个很好的方法。

相关文章

  • 对象代理(数据隐私保护)

    学c++和java的时候,我们都可以快速方便地定义私有属性,但在js里面要定义私有属性就比较麻烦了。 es5中可以...

  • 个人数据隐私保护研究及指导性建议

    1 大数据时代背景下的隐私与隐私保护 数据隐私保护是数据隐私安全不可缺少的内容。对数据隐私和保护的基本理解是研究数...

  • ES 语法

    一、常量 二、作用域 三、箭头函数 this 为定义时的对象 四、默认参数 五、数据保护 六、对象代理

  • 如何使用GDPR保护自己的个人隐私

    简述 GDPR 由欧盟推出的数据隐私保护法案GDPR,于2018年5月25日正式生效。简单来说,这一法案保护的对象...

  • 代理模式

    代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。 代理种类:保护代理、动态代理【iOS没有】...

  • 文件加密

    1. 保护隐私数据不被未授权访问; 什么是加密 1. 保护隐私数据不被未授权访问; 2. 用于隐藏真实数据,进行安...

  • 第6章-对象和数据结构

    6.1 数据抽象 于对象而言我们应该隐藏实现细节,保护数据的隐私性;应提供出合理的抽象操作方法、取值器、赋值器。 ...

  • 设计模式

    1.代理模式 定义:为其他对象提供一种代理,以控制对这个对象的访问。 远程代理 虚拟代理 保护代理 智能引用代理静...

  • 代理设计模式

    代理设计模式:1.真实对象2.代理对象3.抽象对象(抽象功能) 代理设计模式优点:1.保护真实对象2.让真实对象职...

  • 设计模式-之-代理模式和面向接口编程

    一、代理模式简介 代理设计模式优点:(1) 保护真实对象(2) 让真实对象职责更明确.(3) 扩展 代理设计模式(...

网友评论

      本文标题:对象代理(数据隐私保护)

      本文链接:https://www.haomeiwen.com/subject/nfzteftx.html