JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでオブジェクトが持つすべてのメソッドを取得・表示する方法

JavaScriptであるオブジェクトが持つすべてのメソッド(関数)を一覧表示したい場合、Object.getOwnPropertyNames() メソッドを使用するのが便利です。このメソッドは、オブジェクトに直接属するすべてのプロパティ名を配列として返します。

メソッドだけを抽出する方法

返される配列には、メソッド以外のプロパティも含まれています。そこで filter() を組み合わせることで、「型が function であるもの」だけを絞り込み、メソッドのみを取り出すことができます。

サンプルコード

以下のコードでは、組み込みオブジェクト Math が持つすべてのメソッドを取得して表示しています。実際にブラウザで実行してみてください。

<!DOCTYPE html>
<html>
  <body>
    <script>
      document.write("<br>" + Object.getOwnPropertyNames(Math).filter(function (p) {
        return typeof Math[p] === 'function';
      }));
    </script>
  </body>
</html>

コードの解説

Object.getOwnPropertyNames(Math) によって、Math オブジェクトのすべてのプロパティ名(abs、floor、random など)が配列で取得されます。続く filter() の中で typeof Math[p] === 'function' を判定することにより、値が関数であるプロパティ、つまりメソッドだけが残ります。

この手法は Math オブジェクトだけでなく、任意のオブジェクトやクラスのインスタンスに対しても応用できます。ただし、継承されたプロパティは含まれないため、プロトタイプチェーン上のメソッドまで調べたい場合は Object.getPrototypeOf() を併用するとよいでしょう。

  1. JavaScriptのオブジェクトメソッドとは?使い方とサンプルコードを解説

    JavaScriptにおけるオブジェクトメソッドとは、オブジェクトに対して実行できる操作(アクション)のことです。オブジェクトは文字列や数値などのデータ(プロパティ)だけでなく、関数を値として持つことができ、この関数が「メソッド」として機能します。メソッド内では this キーワードを使用することで、そのオブジェクト自身が持つプロパティへアクセスできます。これは、オブジェクト指向プログラミングにおいて非常に重要な概念です。オブジェクトメソッドのサンプルコード以下は、ユーザーの入力した名前と年齢から、成人かどうかを判定するメソッドを持つオブジェクトを作成する例です。<!DOCTYPE ht

  2. JavaScriptオブジェクトにメソッドを追加・アクセスする方法をわかりやすく解説

    JavaScriptでは、オブジェクトのプロパティとして関数(メソッド)を後から動的に追加することができます。ここでは、ドット記法を使ってオブジェクトにメソッドを追加し、それを呼び出してアクセスする方法を紹介します。基本的な考え方JavaScriptのオブジェクトは「プロパティ」と「メソッド」で構成されます。プロパティが値を保持するのに対し、メソッドは関数として定義され、オブジェクトの操作や処理を行います。既存のオブジェクトに新しいメソッドを追加するには、次のようにドット記法で関数を代入します。obj.メソッド名 = function() { ... };メソッド内では this キーワードを