定义数据属性 
定义对象上的数据属性。 将回到没有描述符的引擎中的任务.
三个 non* 参数也可以通过 null,将使用已有状态.
这个 loose 参数将意味着,如果您试图设置一个非正常的数据属性,在一个没有描述符支持的环境中,它会回到正常的任务.
使用量
var defineDataProperty = require('define-data-property');
var assert = require('assert');
var obj = {};
defineDataProperty(obj, 'key', 'value');
defineDataProperty(
obj,
'key2',
'value',
true, // nonEnumerable, optional
false, // nonWritable, optional
true, // nonConfigurable, optional
false // loose, optional
);
assert.deepEqual(
Object.getOwnPropertyDescriptors(obj),
{
key: {
configurable: true,
enumerable: true,
value: 'value',
writable: true,
},
key2: {
configurable: false,
enumerable: false,
value: 'value',
writable: true,
},
}
);
