プロキシオブジェクト

本のプロパティは: { "name": "《ES6 Basic Series ","price": 56 }; Proxy オブジェクトを使用してインターセプトする必要があり、name のプロパティは "" ES6 として表示されます。無知への入り口 "" を強制します。価格属性は読み取り専用です。

let book= {
  "name":"《ES6基础系列》",
  "price":56,
  "author":"虫虫",
  "date":"2021/8/12"
};
let proxy = new Proxy(book,{
  get:function(target,property){
    if( property in target ){
      // 当属性为 name 时,不向外显示其真实名字
      if( property == "name" ){
        return "《ES6从入门到懵逼》"
      }else{//其他情况下,显示其本来的属性值
        return target[property]
      }
    }
  },

  set:function( target,property,value ){
    if( property in target ){
      //设置日期可修改
      if( property == "date" ){
        target[property] = value;
        return true
      }else{
        return console.log(`${property}不允许修改`)
      }
    }
  }
})

console.log(proxy.name);
console.log(proxy.price);
console.log(proxy.author);
proxy.author = '111';//作者不允许修改
proxy.date = '2200/8/12';
console.log(proxy.date); //2200/8/12

おすすめ

転載: blog.csdn.net/weixin_57092157/article/details/119632511
おすすめ