1. Object 属性描述符
属性描述符分为:数据描述符、存取描述符
let obj = { name: "yqcoder", }; // 单个属性 Object.defineProperty(obj, "name", { // 数据描述符 // 属性值,默认 undefined value: "yq", // 可写,默认 false,true 时可修改 writable: true, // 可删除,默认 false,true 时可删除 configurable: true, // 可枚举,默认 false,true 时可枚举 enumerable: true, // 存取描述符 // 截获name的值 get() { return this.value; }, // 设置name的值 set(value) { this.value = value; }, }); // 多个属性 Object.defineProperties(obj, { name: { value: "yqcoder", writable: true, configurable: true, enumerable: true, }, }); // 获取属性描述符 Object.getOwnPropertyDescriptor(obj, "name"); // {value: 'yqcoder', writable: true, enumerable: true, configurable: true}
2. Object.assign
合并两个对象,更改原对象
let obj = { name: "yqcoder", }; let _obj = { age: 18, }; Object.assign({}, obj, _obj); // {name: 'yqcoder', age: 18}
3. Object.create
创建一个新对象
let obj = Object.create(null, { name: { value: "yqcoder", enumerable: true, }, age: { value: 18, enumerable: true, }, }); obj; // {name: 'yqcoder', age: 18}
4. Object.keys
遍历对象,返回由 key 组成的数组
let obj = { name: "yqcoder", age: 18, }; Object.keys(obj); // ['name', 'age']
5. obj 对象方法
let obj = { name: 'yqcoder', age: 18 } // delete obj.key 删除对象属性 delete obj.name; // {age: 18} // hasOwnProperty 判断对象是否有属性 obj.hasOwnProperty("age"); // true