首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

object.isPrototypeOf

isPrototypeOf()方法用于测试一个对象是否存在于另一个对象的原型链上。

isPrototypeOf()instanceof运算符不同。在表达式 "object instanceof AFunction"中,object的原型链是针对AFunction.prototype进行检查的,而不是针对AFunction本身。

语法

代码语言:javascript
复制
prototypeObj.isPrototypeOf(object)

参数

object在该对象的原型链上搜寻

报错

TypeError如果prototypeObj为 undefined 或 null,会抛出TypeError

描述

isPrototypeOf()方法允许你检查一个对象是否存在于另一个对象的原型链上。

描述

isPrototypeOf() 方法允许你检查一个对象是否存在于另一个对象的原型链上。

示例

本示例展示了Baz.prototype,Bar.prototype,?Foo.prototype?和Object.prototypebaz对象的原型链上:

代码语言:javascript
复制
function Foo() {}
function Bar() {}
function Baz() {}

Bar.prototype = Object.create(Foo.prototype);
Baz.prototype = Object.create(Bar.prototype);

var baz = new Baz();

console.log(Baz.prototype.isPrototypeOf(baz)); // true
console.log(Bar.prototype.isPrototypeOf(baz)); // true
console.log(Foo.prototype.isPrototypeOf(baz)); // true
console.log(Object.prototype.isPrototypeOf(baz)); // true

如果你有段代码只在需要操作继承自一个特定的原型链的对象的情况下执行,同instanceof操作符一样isPrototypeOf()方法就会派上用场,例如,为了确保某些方法或属性将位于对象上。

例如,检查 baz 对象是否继承自 Foo.prototype

代码语言:javascript
复制
if (Foo.prototype.isPrototypeOf(baz)) {
? // do something safe
}

规范

Specification

Status

Comment

ECMAScript 3rd Edition (ECMA-262)

Standard

Initial definition.

ECMAScript 5.1 (ECMA-262)The definition of 'Object.prototype.isPrototypeOf' in that specification.

Standard

?

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Object.prototype.isPrototypeOf' in that specification.

Standard

?

ECMAScript Latest Draft (ECMA-262)The definition of 'Object.prototype.isPrototypeOf' in that specification.

Living Standard

?

浏览器兼容性

Feature

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

Basic Support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Basic Support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com