js对象代理方式

398 阅读1分钟

let Person = {

     name:"personName",

     sex:1,

     age:23

}

es6 使用proxy实现

let Person = new proxy(Person,{

     get(target,key){

         return target[key]

     },

    set(target,key,value){

         if(key != sex){//性别不能被改变

              target[key] = value;

         }

   }

});

调用 person.sex = 0;  person.sex还是等于1

es5  使用构造函数

function Person = function(){

 let obj = {

     name:"personName",

     sex:1,

    age:23

}

   this.get = function(key){

        return obj[key];

   }


   this.set = function(ket,value){

      if(key!="sex"){

         obj[key] = value;

     }

   }

}

调用

var person = new Person();

获取:person.get("key");

赋值:person.set("key","1");


es5  使用Object.definedProperty(Person,"sex",{

   writable:false,

   value:1

});

调用 person.sex = 0; person.sex还是等于1;



感谢观看!谢谢指导!