propertiesObject

说明

  • 数据属性
    1. writable::如果为false,属性的值就不能被重写,默认:false
    2. configurable:如果为false,则不能删除目标属性或修改属性以下特性(writable, configurable, enumerable),默认:false
    3. enumerable:是否能在for...in循环中遍历出来或在Object.keys中列举出来,默认false
    4. value:属性的初始值
  • 访问属性
    1. get(): 用户访问属性的时候会调用该函数
    2. set(): 用户设置属性的时候会调用该函数

示例

 var obj = {};
    Object.defineProperties(obj, {
        'name': {
            //value: '张三',
            // writable: true,
            get: function() {
                return '我的姓名叫做' + this.value;
            },
            set: function(v) {
                this.value = v;
            }

        },
        'age': {
            value: '26',
            enumerable: true
        }
    });
    obj.name = "张三";
    console.log(obj.name);
    console.log(Object.keys(obj));

注意

value,writable不能和get,set共存,否则会报错

Uncaught TypeError: Invalid property descriptor. Cannot both specify accessors and a value or writable attribute, #
    at Function.defineProperties ()






你可能感兴趣的:(propertiesObject)