美文网首页
Object.defineProperty

Object.defineProperty

作者: 仰望天空的人 | 来源:发表于2018-11-29 15:54 被阅读14次

最近常规做一个消息滚动时 循环里if判断盒子 show hide状态,居然不能实时触发,这才想到这个属性,没什么注解的,先码着

VueJS:采用 Object.defineProperty() 方法,监控对数据的操作,从而可以自动触发数据同步。并且,由于是在不同的数据上触发同步,可以精确的将变更发送给绑定的视图,而不是对所有的数据都执行一次检测。(angular采用的脏值检测,数据发生变更后,对于所有的数据和视图的绑定关系进行一次检测,相比之下,emmm)

基本用法

var a = {};
Object.defineProperty(a, 'b', {
    value: 123
});
console.log(a.b); // 123

很简单,它接受三个参数,而且都是必填的。

参数介绍:

  • 第一个参数:目标对象
  • 第二个参数:需要定义的属性或方法的名字。
  • 第三个参数:目标属性所拥有的特性。

前两个参数不多说了,一看代码就懂,主要看第三个参数,看看有哪些取值。

  • value:属性的值。
  • writable:如果为false,属性的值就不能被重写,只能为只读了。
  • configurable:总开关,一旦为false,就不能再设置他的(valuewritableconfigurable)。
  • enumerable:是否能在for...in循环中遍历出来或在Object.keys中列举出来。
  • get:。
  • set:。

相关文章

网友评论

      本文标题:Object.defineProperty

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