Content-Length: 193487 | pFad | http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf

Reflect.getPrototypeOf() - JavaScript | MDN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Reflect.getPrototypeOf()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2016年9月以降、すべてのブラウザーで利用可能です。

Reflect.getPrototypeOf() は静的メソッドで、Object.getPrototypeOf() とほぼ同じメソッドです。これは指定したオブジェクトのプロトタイプを返します。

試してみましょう

const object = {
  foo: 42,
};

const proto = Reflect.getPrototypeOf(object);

console.log(proto);
// 予想される結果: Object {  }

console.log(Reflect.getPrototypeOf(proto));
// 予想される結果: null

構文

js
Reflect.getPrototypeOf(target)

引数

target

プロトタイプを取得する対象のオブジェクトです。

返値

与えられたオブジェクトのプロトタイプです。継承されたプロパティがない場合、null を返します。

例外

TypeError

target がオブジェクトではない場合に発生します。

解説

Reflect.getPrototypeOf() は、オブジェクトのプロトタイプを取得する反射的意味づけを提供します。Object.getPrototypeOf() との唯一の違いは、オブジェクト以外の対象を処理する方法です。Reflect.getPrototypeOf() は対象がオブジェクトでない場合に TypeError を発生しますが、Object.getPrototypeOf() はオブジェクトに変換します。

Reflect.getPrototypeOf() は、target[[GetPrototypeOf]] オブジェクト内部メソッド を呼び出します。

Reflect.getPrototypeOf() の使用

js
Reflect.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf(Object.prototype); // null
Reflect.getPrototypeOf(Object.create(null)); // null

Object.getPrototypeOf() との比較

js
// Object の結果は同じ
Object.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf({}); // Object.prototype

// ES5 上では非Objectの結果は両方とも例外
Object.getPrototypeOf("foo"); // Throws TypeError
Reflect.getPrototypeOf("foo"); // Throws TypeError

// ES2015 上では Reflect のみ例外で、Object は 非Object を Object として扱う
Object.getPrototypeOf("foo"); // String.prototype
Reflect.getPrototypeOf("foo"); // Throws TypeError

// Object ES2015 の動作を模倣するには、型変換が必要
Reflect.getPrototypeOf(Object("foo")); // String.prototype

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-reflect.getprototypeof

ブラウザーの互換性

関連情報









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy