阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript 对象的属性定义和枚举

      对象定义的枚举 / 是否可修改等

      如果显示的aaa.xxx = 22; 这么写属性,那么会隐势的操作,让该属性,可读,可写,可枚举。

      对比如下;

      let options = {};
      
      let _address = "hangzhou";
      let _name = 'anbang';
      let _age = 10;
      
      Object.defineProperty(options, 'name', {
          set: function (value) {
              if (value) {
                  _name = value;
              }
          },
          get: function () {
              return _name;
          },
          enumerable: true
      });
      
      Object.defineProperty(options, 'age', {
          set: function (value) {
              if (value) {
                  _age = value;
              }
          },
          get: function () {
              return Number(_age);
          },
          enumerable: true
      });
      
      Object.defineProperty(options, 'address', {
          set: function (value) {
              if (value) {
                  _address = value;
              }
          },
          get: function () {
              return _address;
          },
          enumerable: false
      });
      options.zzz = 123
      
      console.log(options)
      
      for (item in options) {
          console.log(`\n${item}:${options[item]}`);
          switch (item) {
              case 'name':
                  console.log("switch name", options[item])
                  break;
              case 'age':
                  console.log("switch age", options[item])
                  break;
              default:
                  console.log("switch default", options[item])
          }
      }
      
      目录
      本文目录
      目录