Object构造函数方法Object.getOwnPropertyDescriptors()
Object.getOwnPropertyDescriptors(obj)用来获取一个对象的所有自身属性的描述符
obj
任意对象
返回值
所指定对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象
示例
const obj = {
name: 'h'
}
Object.defineProperty(obj, 'age', {
value: 11
})
const result = Object.getOwnPropertyDescriptors(obj)
console.log(result)
// {
// name: { value: 'h', writable: true, enumerable: true, configurable: true },
// age: {
// value: 11,
// writable: false,
// enumerable: false,
// configurable: false
// }
// }
const target = {
a: 1,
b: 2
};
Object.assign(target, obj)
console.log(target) // { a: 1, b: 2, name: 'h' } 因为obj的age属性,是不可枚举属性
const result1 = Object.getOwnPropertyDescriptors(target)
console.log(result1)
// 浅拷贝一个对象
// Object.assign()方法只能拷贝源对象的可枚举属性,同时拷贝时无法拷贝属性的特性们,而且访问器属性会被转换成数据属性,也无法拷贝源对象的原型。
// 该方法配合Object.create() 方法可以实现上面说的这些
Object.create( // 使用现有的对象来提供新创建的对象的__proto__。
Object.getPrototypeOf(obj), // 返回指定对象的原型(内部[[Prototype]])属性的值
Object.getOwnPropertyDescriptors(obj)
)本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!