📅  最后修改于: 2023-12-03 15:01:38.544000             🧑  作者: Mango
在 JavaScript 中,每个对象都有一个Prototype,它定义了该对象的属性和方法。我们可以使用Object.create()
方法或__proto__
属性来设置一个对象的 Prototype。
但是在 ECMAScript 6 中,我们还有一个方法来设置一个对象的 Prototype,那就是使用Reflect.setPrototypeOf()
方法。
Reflect.setPrototypeOf(target, prototype);
const obj1 = { name: 'Jack' };
const obj2 = { age: 20 };
Reflect.setPrototypeOf(obj1, obj2);
console.log(obj1.age); // 输出 20
console.log(obj1.prototype); // 输出 { age: 20 }
在上面的示例中,我们将obj2
设置为obj1
的 Prototype,因此obj1
现在可以访问obj2
中的属性和方法,包括 age
属性。
target
不是对象,则会抛出一个TypeError
异常。prototype
为null
,则会抛出一个TypeError
异常。