美文网首页
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