Object.prototype.isPrototypeOf リダイレクト 1

この文書は翻訳中です。他国語のままの部分などがあるのはその為です。
是非お気軽に MDN に登録して翻訳に参加し、私たちの手助けをして下さい!

概要

オブジェクトが別のオブジェクトのプロトタイプチェーンに存在するかどうかを判定します。

Object オブジェクトのメソッド
実装されたバージョン JavaScript ?
ECMAScript エディション ECMAScript 3rd Edition

構文

prototype.isPrototypeOf(object)

引数

prototype
引数に指定したオブジェクトのプロトタイプチェーン内の各リンクに対してテストするオブジェクト
注記: isPrototypeOfinstanceof 演算子 とは異なるものです。In the expression object instanceof AFunction, the object prototype chain is checked against AFunction.prototype, not against AFunction itself
object
プロトタイプチェーンの検索対象

説明

isPrototypeOf を用いると、オブジェクトが別のオブジェクト内のプロトタイプチェーンに存在するかどうかをチェックする事ができます。

例えば、次の様なプロトタイプチェーンがあったとします。

function Fee() {
  // . . .
}

function Fi() {
  // . . .
}
Fi.prototype = new Fee();

function Fo() {
  // . . .
}
Fo.prototype = new Fi();

function Fum() {
  // . . .
}
Fum.prototype = new Fo();

Later on down the road, if you instantiate Fum and need to check if Fi's prototype exists within the Fum prototype chain, you could do this:

var fum = new Fum();
. . .

if (Fi.prototype.isPrototypeOf(fum)) {
  // do something safe
}

This, along with the instanceof operator particularly comes in handy if you have code that can only function when dealing with objects descended from a specific prototype chain, e.g., to guarantee that certain methods or properties will be present on that object.

関連情報

ドキュメントのタグと貢献者

最終更新者: ethertank,