Object.getOwnPropertyDescriptors()
静态方法 Object.getOwnPropertyDescriptors() 返回给定对象的所有自身属性描述符。
试一试
const object = {
foo: 42,
};
const descriptors = Object.getOwnPropertyDescriptors(object);
console.log(descriptors.foo.writable);
// Expected output: true
console.log(descriptors.foo.value);
// Expected output: 42
语法
js
Object.getOwnPropertyDescriptors(obj)
参数
obj-
要获取所有自身属性描述符的对象。
返回值
一个包含对象所有自身属性描述符的对象。如果没有属性,可能是一个空对象。
描述
此方法允许检查对象所有自身属性的精确描述。JavaScript 中的属性由一个字符串名称或一个 Symbol 和一个属性描述符组成。有关属性描述符类型及其属性的更多信息,请参阅 Object.defineProperty()。
属性描述符是一个包含以下部分属性的记录
示例
创建浅拷贝
虽然 Object.assign() 方法只会将源对象的可枚举和自身属性复制到目标对象,但您可以使用此方法和 Object.create() 在两个未知对象之间实现 浅拷贝。
js
Object.create(
Object.getPrototypeOf(obj),
Object.getOwnPropertyDescriptors(obj),
);
创建子类
创建子类的典型方法是定义子类,将其原型设置为超类实例,然后在该实例上定义属性。这可能会很麻烦,尤其是对于 getter 和 setter。相反,您可以使用此代码设置原型。
js
function superclass() {}
superclass.prototype = {
// Define the superclass constructor, methods, and properties here
};
function subclass() {}
subclass.prototype = Object.create(superclass.prototype, {
// Define the subclass constructor, methods, and properties here
});
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-object.getownpropertydescriptors |
浏览器兼容性
加载中…