Object.getPrototypeOf()
Object.getPrototypeOf()
方法返回指定对象的原型(内部[[Prototype]]
属性的值)。
语法
Object.getPrototypeOf(object)
参数obj
要返回其原型的对象。
返回值
给定对象的原型。如果没有继承属性,则返回 null
。
尝试一下
示例
var proto = {};
var obj = Object.create(proto);
Object.getPrototypeOf(obj) === proto; // true
var reg = /a/;
Object.getPrototypeOf(reg) === RegExp.prototype; // true
说明
备注:
// 一般用法是:
var obj = new Object();
所以:
Object.getPrototypeOf( Object ); // ƒ () { [native code] }
Object.getPrototypeOf( Function ); // ƒ () { [native code] }
Object.getPrototypeOf( Object ) === Function.prototype; // true
Object.getPrototypeOf( Object ) 是把 Object 这一构造函数看作对象,
返回的当然是函数对象的原型,也就是 Function.prototype。
正确的方法是,Object.prototype 是构造出来的对象的原型。
var obj = new Object();
Object.prototype === Object.getPrototypeOf( obj ); // true
Object.prototype === Object.getPrototypeOf( {} ); // true
Notes
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 5.1 (ECMA-262) Object.getPrototypeOf |
Standard | Initial definition. |
ECMAScript 2015 (6th Edition, ECMA-262) Object.getPrototypeOf |
Standard | |
ECMAScript (ECMA-262) Object.getPrototypeOf |
Living Standard |
浏览器兼容
BCD tables only load in the browser
Opera 特别提示
即使旧版本 Opera 不支持Object.getPrototypeOf()
,Opera 10.50 之后还支持非标准的 __proto__
属性。