推荐答案
-- -------------------- ---- ------- -- -- --------------------- ------- ----- ------ - - ----- -------- -- ----- ----- - - ---- -- -- ---------------------------- -------- ------------------------ -- --- ------ -- -- --------------------- ------- ----- --------- - ----------------------------- --------------------- --- -------- -- --- ----
本题详细解读
Object.setPrototypeOf 方法
Object.setPrototypeOf
方法用于设置一个对象的原型(即内部 [[Prototype]]
属性)。它接受两个参数:
- obj: 要设置原型的对象。
- prototype: 该对象的新原型(可以是一个对象或
null
)。
Object.setPrototypeOf(obj, prototype);
- 该方法会直接修改对象的原型链,因此在使用时应谨慎,因为它可能会影响性能。
- 如果
prototype
参数不是一个对象或null
,则会抛出TypeError
。
Object.getPrototypeOf 方法
Object.getPrototypeOf
方法用于获取指定对象的原型。它接受一个参数:
- obj: 要获取原型的对象。
Object.getPrototypeOf(obj);
- 该方法返回指定对象的原型(即内部
[[Prototype]]
属性的值)。 - 如果
obj
参数不是一个对象,则会抛出TypeError
。
示例解析
在推荐答案的示例中:
- 首先定义了一个
parent
对象和一个child
对象。 - 使用
Object.setPrototypeOf
方法将child
对象的原型设置为parent
对象。 - 通过
child.name
访问parent
对象的name
属性,输出'Parent'
。 - 使用
Object.getPrototypeOf
方法获取child
对象的原型,并验证其是否与parent
对象相等,输出true
。
这两个方法在处理对象原型时非常有用,尤其是在需要动态修改或检查对象原型链的情况下。