JavaScript 中 Object.setPrototypeOf 和 Object.getPrototypeOf 方法的用法?

推荐答案

-- -------------------- ---- -------
-- -- --------------------- -------
----- ------ - - ----- -------- --
----- ----- - - ---- -- --

---------------------------- --------

------------------------ -- --- ------

-- -- --------------------- -------
----- --------- - -----------------------------
--------------------- --- -------- -- --- ----

本题详细解读

Object.setPrototypeOf 方法

Object.setPrototypeOf 方法用于设置一个对象的原型(即内部 [[Prototype]] 属性)。它接受两个参数:

  1. obj: 要设置原型的对象。
  2. prototype: 该对象的新原型(可以是一个对象或 null)。
  • 该方法会直接修改对象的原型链,因此在使用时应谨慎,因为它可能会影响性能。
  • 如果 prototype 参数不是一个对象或 null,则会抛出 TypeError

Object.getPrototypeOf 方法

Object.getPrototypeOf 方法用于获取指定对象的原型。它接受一个参数:

  1. obj: 要获取原型的对象。
  • 该方法返回指定对象的原型(即内部 [[Prototype]] 属性的值)。
  • 如果 obj 参数不是一个对象,则会抛出 TypeError

示例解析

在推荐答案的示例中:

  1. 首先定义了一个 parent 对象和一个 child 对象。
  2. 使用 Object.setPrototypeOf 方法将 child 对象的原型设置为 parent 对象。
  3. 通过 child.name 访问 parent 对象的 name 属性,输出 'Parent'
  4. 使用 Object.getPrototypeOf 方法获取 child 对象的原型,并验证其是否与 parent 对象相等,输出 true

这两个方法在处理对象原型时非常有用,尤其是在需要动态修改或检查对象原型链的情况下。

纠错
反馈