JavaScript中获取对象原型对象的两种方法

作者:闭包旅人时间:2026-10-28 22:55:24浏览:634

本文介绍在JavaScript中获取对象原型对象的两种常用方法。首先介绍直接使用__proto__属性,该方法在Chrome和Firefox中有效,但IE浏览器直到IE11才支持。其次介绍通过constructor属性间接获取原型的方法,适用于不支持__proto__的环境。文章提供了具体的代码示例和原理说明。

JavaScript获取原型对象的方法

在JavaScript中,若需获取一个未知构造函数的对象的原型,有哪些可行方案?

使用__proto__属性

在Chrome或Firefox等现代浏览器中,可直接利用对象的__proto__属性来访问其原型对象。

具体实现代码如下:

<!-- lang: js -->
function F(){};
var foo = new F();
alert(foo.__proto__ == F.prototype);

需要注意的是,__proto__属性在IE浏览器中直至IE11版本才获得支持。

使用constructor属性

针对不支持__proto__属性的浏览器环境,可通过constructor属性间接获取原型对象。

相关代码示例如下:

<!-- lang: js -->
function F(){};
var foo = new F();
alert(foo.constructor.prototype == F.prototype);

constructor并非对象自身的属性,而是沿原型链向上查找所得。该属性指向原型对象对应的构造函数,而构造函数的prototype属性指向原型对象,从而实现了原型的间接获取。

以上内容总结了JavaScript中获取原型对象的主要方法。

作者最新文章