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
说明
Object.getPrototypeOf(Object)不是 Object.prototype
JavaScript中的 Object 是构造函数(创建对象的包装器)。 一般用法是: 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
在 ES5 中,如果参数不是一个对象类型,将抛出一个Object
。
Object.getPrototypeOf('foo'); // TypeError: "foo" is not an object (ES5 code) Object.getPrototypeOf('foo'); // String.prototype (ES2015 code)