美文网首页
Object.defineProperty是干什么的?

Object.defineProperty是干什么的?

作者: hello_water | 来源:发表于2020-03-09 22:52 被阅读0次
语法
Object.defineProperty(obj,prop,descriptor)
// obj--要在骑上定义属性的对象,prop--要定义或修改的属性的明湖曾,descriptor--将被定义或修改的属性描述符
与点运算符的异同
var person={};  
person.num=1;
相当于
Object.defineProperty(person,'num',{
  value:1, 
  writable : true,
  configurable : true,
  enumerable : true
})
但是:
Object.defineProperty(person,'num',{
  value:1, 
  writable : false
})
person.num=2;
console.log(person.num);//1
存取描述符
  • get
    -- 给属性提供getter的方法

  • set
    -- 给属性提供setter的方法

function Archiver() {
  var temperature = null;
  var archive = [];

  Object.defineProperty(this, 'temperature', {
    get: function() {
      console.log('get!');
      return temperature;
    },
    set: function(value) {
      temperature = value;
      archive.push({ val: temperature });
    }
  });

  this.getArchive = function() { return archive; };
}

var arc = new Archiver();
arc.temperature; // 'get!'
arc.temperature = 11;
arc.temperature = 13;
arc.getArchive(); // [{ val: 11 }, { val: 13 }]

相关文章

网友评论

      本文标题:Object.defineProperty是干什么的?

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