1. Object.defineProperty 在一个对象上定义一个新属性,或修改一个已经存在的属性, 最终返回这个对象。
var __define = this.__define || function (o, p, g, s) {
Object.defineProperty(o, p, {
configurable: true,
enumerable: true,
get: g,
set: s
});
};
o: 需要定义属性的 对象。
p:要定义或修改的 名称 或 属性。
descriptor : 正在定义或修改属性的描述符。
descriptor :
configurable
true
当且仅当可以更改此属性描述符的类型并且可以从相应对象中删除该属性时。默认为false
。
enumerable: 仅当该属性的 enumerable 为 true
时,该属性才能够出现在对象的枚举属性中。默认为 false
get
: 一个给属性提供 getter 的方法,如果没有 getter 则为 undefined
。该方法返回值被用作属性值。undefined
set
: 一个给属性提供 setter 的方法,如果没有 setter 则为 undefined
。该方法将接受唯一参数,并将该参数的新值分配给该属性。默认为undefined
。