标准内置对象Object
1、Object.defineProperty()
/**
* Object.defineProperty()
* Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者
* 修改一个对象的现有属性,并返回此对象。
*
* 备注:应当直接在 Object 构造器对象上调用此方法,而不是在任意一个 Object
* 类型的实例上调用。
*
* 语法:
* Object.definePropery(obj, prop, descriptor)
* obj: 要定义属性的对象。
* prop: 要定义或修改的属性的名称或symbol。
* descriptor: 要定义或修改的属性描述符。
*
* 默认情况下,使用Object.defineProperty()添加的属性值是不可修改(immutable)的。
*/
let obj = { age: 18 }
// 定义新属性
Object.defineProperty(obj, 'name', { value: '王一博', writable: false })
console.log(obj.name)
// 修改已存在的属性
Object.defineProperty(obj, 'age', {value: 25, writable: false})
console.log(obj.age)
2、Object.keys()
/**
* Object.keys()
* Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组
* 中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致。
*/
let obj = {
name: '王一博',
age: '25',
gender: 'male'
}
console.warn(Object.keys(obj)) // [ 'name', 'age', 'gender' ]