📅  最后修改于: 2023-12-03 15:01:38.277000             🧑  作者: Mango
setPrototypeOf()
方法用于设置一个指定对象的原型(即 __proto__
属性)。
Object.setPrototypeOf(obj, prototype)
obj
:要设置原型的对象。prototype
:要设置的新原型对象。返回被修改后的对象 obj
。
const animal = {
type: 'unknown',
sound() {
console.log('Unknown sound');
}
};
const dog = {
breed: 'Labrador'
};
// 设置 dog 的原型为 animal
Object.setPrototypeOf(dog, animal);
console.log(dog.type); // 输出:'unknown'
dog.sound(); // 输出:'Unknown sound'
在上述代码中,我们有一个 animal
对象和一个 dog
对象。通过调用 Object.setPrototypeOf()
方法,我们将 dog
对象的原型设置为 animal
对象。这导致 dog
继承了 animal
对象的属性和方法。
通过设置原型,我们可以实现对象之间的继承,允许一个对象共享另一个对象的属性和方法。
obj
参数不是一个对象类型,则会抛出一个 TypeError
异常。setPrototypeOf()
方法会影响 obj
对象的原型链,如果使用不当,可能会导致一些意外的行为。因此,在使用该方法时需要谨慎操作。更多关于 setPrototypeOf()
方法的详细信息可以参考 MDN 文档。