📜  JavaScript | getPrototypeOf() 与示例(1)

📅  最后修改于: 2023-12-03 15:16:07.769000             🧑  作者: Mango

JavaScript | getPrototypeOf() 与示例

在 JavaScript 中,getPrototypeOf() 方法返回指定对象的原型(即,[[Prototype]] 内部属性的值)。

语法
Object.getPrototypeOf(obj)

参数说明:

  • obj:要获取原型的对象。

返回值:

  • 传入对象的原型,返回值是一个对象(通常是构造函数的 prototype 属性)。
示例
示例1:
function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

// 得到对象 Person 的原型
const proto = Object.getPrototypeOf(Person);
console.log(proto); // Output: [Function]

const person = new Person('John', 'Doe');
console.log(Object.getPrototypeOf(person) === proto); // Output: true

解释:

  • 创建一个名为 "Person" 的构造函数。
  • 使用 Object.getPrototypeOf() 方法获取 Person 构造函数的原型,为函数类型。
  • 创建一个 person 对象,并使用 Object.getPrototypeOf() 方法获取其原型,判断其是否与 Person 构造函数的原型相等,结果为 true
示例2:
const person = {
  name: 'John Doe'
};

const proto = Object.getPrototypeOf(person);
console.log(proto); // Output: {}

const secondProto = Object.getPrototypeOf(proto);
console.log(secondProto); // Output: null

解释:

  • 创建一个 person 对象,并使用 Object.getPrototypeOf() 方法获取其原型,结果为一个空对象。
  • 再次使用 Object.getPrototypeOf() 方法获取空对象的原型,结果为 null
总结
  • getPrototypeOf() 方法返回指定对象的原型。
  • 该方法是 Object 的一个静态方法,可以使用 Object.getPrototypeOf() 或 直接调用对象实例的 __proto__ 属性来调用该方法。
  • 每个对象都有一个原型对象,该原型对象有自己的原型,是一个原型链,可以通过该方法获取整个原型链。