位置:首页 > JavaScript > JavaScript中使用Object.getPrototypeOf读取内置对象原型方法

JavaScript中使用Object.getPrototypeOf读取内置对象原型方法

时间:2026-08-13  |  作者:骑光打字机  |  阅读:0

Object.getPrototypeOf 的作用,说白了就是更稳妥地拿到一个对象的原型。

放到具体场景里看,函数对象拿到的是 Function.prototype,实例对象返回的是各自对应的 .prototype

Object.prototype 再往上一层,它的原型就是 null

还有一点很容易被忽略:如果是原始值,得先包装成对象,才能调用这个方法。

Ja vaScript 中怎么使用 Object.getPrototypeOf 读取内置对象的原型

Object.getPrototypeOf 的作用

Object.getPrototypeOf 的作用很直接:它能把任意对象的原型读取出来,也就是拿到其内部 [[Prototype]] 实际指向的那个对象。

不管是 ArrayStringDate 这类内置对象的构造函数本身,还是它们各自创建出来的实例,都可以这样查看。

读取内置构造函数的原型

内置构造函数(如 ArrayObject)本身是函数对象,它们的原型是 Function.prototype

  • Object.getPrototypeOf(Array) === Function.prototypetrue
  • Object.getPrototypeOf(Date) === Function.prototypetrue
  • Object.getPrototypeOf(Object) === Function.prototypetrue

这是因为所有函数(包括内置构造函数)都继承自 Function.prototype

读取内置实例的原型

对内置类型的实例调用 Object.getPrototypeOf,返回对应的标准原型对象:

  • Object.getPrototypeOf([]) === Array.prototypetrue
  • Object.getPrototypeOf("") === String.prototypetrue
  • Object.getPrototypeOf(new Date()) === Date.prototypetrue
  • Object.getPrototypeOf({}) === Object.prototypetrue

这和使用 obj.__proto__ 效果一致,但 Object.getPrototypeOf 是标准、安全、推荐的方式。

读取内置原型链顶端

继续向上追溯,可以到达原型链终点:

  • Object.getPrototypeOf(Array.prototype) === Object.prototype
  • Object.getPrototypeOf(Object.prototype) === null

注意:Object.prototype 的原型是 null,这是整个原型链的终点。

不能直接读取原始值的原型

原始类型(如字符串字面量、数字)没有原型——它们不是对象。

但 JS 会临时包装成对象来访问方法:

  • Object.getPrototypeOf("hello") 抛出 TypeError(因为字符串字面量不是对象)
  • 正确做法是先转为包装对象:Object.getPrototypeOf(new String("hello")) === String.prototype

所以操作前建议用 typeofObject.prototype.toString.call 判断是否为对象类型。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多