js中object对象的defineProperty

defineProperty

object.defineProperty()是用来控制一个对象属性的一些特有操作,比如读写权,是否可以枚举。例子:

var Book = {
    
    }
var name = '';
Object.defineProperty(Book, 'name', {
    
    
  set: function (value) {
    
    
    name = value;
    console.log('你取了一个书名叫做' + value);
  },
  get: function () {
    
    
    return '《' + name + '》'
  }
})
Book.name = 'vue权威指南';  // 你取了一个书名叫做vue权威指南
console.log(Book.name);  // 《vue权威指南》

通过object.defineProperty()设置了对象book的name属性,对其get和set进行重写操作,set就是设置name属性时触发的函数,get就是在读取name属性这个值触发的函数,所以当执行book.name = 'value’时控制台就会打印出‘你取了一个书名叫做’,当读取这个属性时就会输出‘《vue权威指南》’因为在get函数里对该值进行了加工。

猜你喜欢

转载自blog.csdn.net/qq_45429539/article/details/112765947