📅  最后修改于: 2023-12-03 15:16:08.170000             🧑  作者: Mango
在 JavaScript 中,对象要继承属性和方法,必须从其他对象继承。可以使用 Object.setPrototypeOf()
来设置对象的原型(即继承自哪个对象),也可以使用 Object.getPrototypeOf()
来获取对象的原型。但是 Reflect
对象提供了一个更好的方式来获取对象的原型,即 Reflect.getPrototypeOf()
。
Reflect.getPrototypeOf(target)
target
:要获取原型的对象。Reflect.getPrototypeOf()
方法返回指定对象的原型。
const obj1 = {};
const obj2 = { foo: 'bar' };
Object.setPrototypeOf(obj1, obj2);
// 使用 Object.getPrototypeOf() 获取对象原型
console.log(Object.getPrototypeOf(obj1)); // 输出 { foo: 'bar' }
// 使用 Reflect.getPrototypeOf() 获取对象原型
console.log(Reflect.getPrototypeOf(obj1)); // 输出 { foo: 'bar' }
在上述示例中,obj1
继承自 obj2
,通过 Object.setPrototypeOf()
设置了 obj1
的原型为 obj2
。然后我们使用 Object.getPrototypeOf()
获取 obj1
的原型,发现原型为 { foo: 'bar' }
;使用 Reflect.getPrototypeOf()
也获取了相同的结果。