• Object.defineProperty()详解


    Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。

    注意:应当直接在 Object 构造器对象上调用此方法,而不是在任意一个 Object 类型的实例上调用。

    1.语法

    Object.defineProperty(obj, prop, descriptor)
    

    2.参数

    @obj  要定义属性的对象

    @prop  要定义或修改的属性的名称

    @descriptor  要定义或修改的属性描述符

    3.描述符(descriptor)的具体参数

    数据描述符

    @configurable - 默认为 false

      当且仅当该属性的 configurable 键值为 true 时,该属性的描述符才能够被改变,同时该属性也能从对应的对象上被删除

    @enumerable - 默认为 false

      当且仅当该属性的 enumerable 键值为 true 时,该属性才会出现在对象的枚举属性中

    @value - 默认为 undefined

      该属性对应的值。可以是任何有效的 JavaScript 值(数值,对象,函数等)

    @writable - 默认为 false

      当且仅当该属性的 writable 键值为 true 时,属性的值,也就是上面的 value,才能被赋值运算符改变

    存取描述符

    @get - 默认为 undefined

      属性的 getter 函数,如果没有 getter,则为 undefined。当访问该属性时,会调用此函数。执行时不传入任何参数,但是会传入 this 对象(由于继承关系,这里的this并不一定是定义该属性的对象)。该函数的返回值会被用作属性的值

    @set - 默认为 undefined

      属性的 setter 函数,如果没有 setter,则为 undefined。当属性值被修改时,会调用此函数。该方法接受一个参数(也就是被赋予的新值),会传入赋值时的 this 对象

    注意:当使用了getter或setter方法,不允许使用writable和value这两个属性(如果使用,会直接报错)

  • 相关阅读:
    Java日历表
    递归实现文件的大小计算
    将机器学习的个性化推荐与社会化机制相结合
    设计模式——抽象工厂模式
    从mysql到nosql
    设计模式——Adapter模式(变压器)
    Java 正则匹配
    对象集合转换为datatable
    sql1
    Oracle Index 相關知識
  • 原文地址:https://www.cnblogs.com/wangyunhui/p/14544072.html
Copyright © 2020-2023  润新知