node全局对象_Object - dkvirus/npm-resource-read GitHub Wiki

1. Object.defineProperty()

说明

对象定义属性。

示例

var obj = {};

var initValue = '';
Object.defineProperty(obj, 'name', {
    // value: 2,
    // writable: false,            // 值是否可更改
    // enumerable: false,          // name 属性是否可被枚举
    // configurable: false,        // name 属性不能被删除 delete obj.name => 会报错
    set: function (value) {
        console.log('obj.name开始赋值操作,值为:', value)
        initValue = value
    },
    get: function () {
        return `获取obj.name的值:${initValue}`
    }
});

obj.name = 'dkvirus'
console.log(obj.name)

2. Object.getOwnPropertyDescriptor()

说明

返回对象属性的描述对象。

示例

var obj = {};

Object.defineProperty(obj, 'name', {
    enumerable: true,          // name 属性是否可被枚举
    configurable: true,        // name 属性不能被删除 delete obj.name => 会报错
});

console.log(Object.getOwnPropertyDescriptor(obj, 'name'))

/**
{ enumerable: true,
  configurable: true }
*/