01、Object.defineProperties() 方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。
Object.defineProperties(obj, props)
参数 obj: 在其上定义或修改属性的对象。
----
参数 props: 在其上定义或修改属性的对象。要定义其可枚举属性或修改的属性描述符的对象。对象中存在的属性描述符
主要有两种:数据描述符和访问器描述符。 描述符具有以下键:
---configurable true 当且仅当该属性描述符的类型可以被改变并且该属性可以从对应对象中删除
默认为 false
---enumerable
true 当且仅当在枚举相应对象上的属性时该属性显现。
默认为 false
---value 与属性关联的值。可以是任何有效的JavaScript值(数字,对象,函数等)
默认undefined、
---writable true当且仅当与该属性相关联的值可以用assignment.operator改变时,默认为 false
---get 作为该属性的 getter 函数,如果没有 getter 则为undefined 函数返回值将被用作属性的值。
默认值: undefined
---set 作为该属性的 getter 函数,如果没有 setter则为undefined,函数将仅接受参数赋值给该属性的新值。
默认值: undefined
----
返回值: 传递给函数的对象。
描述:Object.defineProperties本质上定义了obj 对象上props的可枚举属性相对应的所有属性。
var obj = {};
Object.defineProperties(obj, {
'property1': {
value: true,
writable: true
},
'property2': {
value: 'Hello',
writable: false
}
// etc. etc.
});
网友评论