Javascript-objects

提供:Dev Guides
移動先:案内検索

JavaScript-オブジェクトの概要

JavaScriptはオブジェクト指向プログラミング(OOP)言語です。 プログラミング言語は、開発者に4つの基本的な機能を提供する場合、オブジェクト指向と呼ぶことができます-

  • カプセル化-データまたはメソッドに関係なく、関連情報をオブジェクトに一緒に保存する機能。
  • Aggregation -1つのオブジェクトを別のオブジェクト内に保存する機能。
  • 継承-プロパティとメソッドの一部を別のクラス(またはクラスの数)に依存するクラスの機能。
  • 多態性-さまざまな方法で機能する1つの関数またはメソッドを記述する機能。

オブジェクトは属性で構成されます。 属性に関数が含まれる場合、オブジェクトのメソッドと見なされます。それ以外の場合、属性はプロパティと見なされます。

オブジェクトのプロパティ

オブジェクトプロパティは、3つのプリミティブデータ型のいずれか、または別のオブジェクトなどの抽象データ型のいずれかです。 オブジェクトプロパティは、通常、オブジェクトのメソッドで内部的に使用される変数ですが、ページ全体で使用されるグローバルに表示される変数にすることもできます。

オブジェクトにプロパティを追加するための構文は次のとおりです-

objectName.objectProperty = propertyValue;

-次のコードは、 document オブジェクトの "title" プロパティを使用してドキュメントのタイトルを取得します。

var str = document.title;

オブジェクトメソッド

メソッドは、オブジェクトに何かをさせたり、何かをさせたりする機能です。 関数とメソッドにはわずかな違いがあります。関数はステートメントのスタンドアロン単位であり、メソッドはオブジェクトに関連付けられ、 this キーワードで参照できます。

メソッドは、オブジェクトのコンテンツを画面に表示することから、ローカルプロパティとパラメーターのグループに対して複雑な数学演算を実行することまで、あらゆることに役立ちます。

-以下は、ドキュメントオブジェクトの* write()*メソッドを使用してドキュメントにコンテンツを書き込む方法を示す簡単な例です。

document.write("This is test");

ユーザー定義オブジェクト

すべてのユーザー定義オブジェクトと組み込みオブジェクトは、 Object と呼ばれるオブジェクトの子孫です。

新しいオペレーター

*new* 演算子は、オブジェクトのインスタンスを作成するために使用されます。 オブジェクトを作成するには、 *new* 演算子の後にコンストラクターメソッドが続きます。

次の例では、コンストラクターメソッドはObject()、Array()、およびDate()です。 これらのコンストラクターは組み込みのJavaScript関数です。

var employee = new Object();
var books = new Array("C++", "Perl", "Java");
var day = new Date("August 15, 1947");

Object()コンストラクター

コンストラクターは、オブジェクトを作成および初期化する関数です。 JavaScriptは、オブジェクトを作成するための* Object()*という特別なコンストラクター関数を提供します。 * Object()*コンストラクターの戻り値は変数に割り当てられます。

変数には、新しいオブジェクトへの参照が含まれます。 オブジェクトに割り当てられたプロパティは変数ではなく、 var キーワードで定義されていません。

例1

次の例を試してください。オブジェクトの作成方法を示します。

<html>
   <head>
      <title>User-defined objects</title>
      <script type = "text/javascript">
         var book = new Object();  //Create the object
         book.subject = "Perl";    //Assign properties to the object
         book.author  = "Mohtashim";
      </script>
   </head>

   <body>
      <script type = "text/javascript">
         document.write("Book name is : " + book.subject + "<br>");
         document.write("Book author is : " + book.author + "<br>");
      </script>
   </body>
</html>

出力

Book name is : Perl
Book author is : Mohtashim

例2

この例は、ユーザー定義関数を使用してオブジェクトを作成する方法を示しています。 ここで、 this キーワードは、関数に渡されたオブジェクトを参照するために使用されます。

<html>
   <head>
   <title>User-defined objects</title>
      <script type = "text/javascript">
         function book(title, author) {
            this.title = title;
            this.author  = author;
         }
      </script>
   </head>

   <body>
      <script type = "text/javascript">
         var myBook = new book("Perl", "Mohtashim");
         document.write("Book title is : " + myBook.title + "<br>");
         document.write("Book author is : " + myBook.author + "<br>");
      </script>
   </body>
</html>

出力

Book title is : Perl
Book author is : Mohtashim

オブジェクトのメソッドの定義

前の例は、コンストラクターがオブジェクトを作成し、プロパティを割り当てる方法を示しています。 ただし、メソッドを割り当てることにより、オブジェクトの定義を完了する必要があります。

次の例を試してください。オブジェクトとともに関数を追加する方法を示します。

<html>

   <head>
   <title>User-defined objects</title>
      <script type = "text/javascript">
        //Define a function which will work as a method
         function addPrice(amount) {
            this.price = amount;
         }

         function book(title, author) {
            this.title = title;
            this.author  = author;
            this.addPrice = addPrice; //Assign that method as property.
         }
      </script>
   </head>

   <body>
      <script type = "text/javascript">
         var myBook = new book("Perl", "Mohtashim");
         myBook.addPrice(100);

         document.write("Book title is : " + myBook.title + "<br>");
         document.write("Book author is : " + myBook.author + "<br>");
         document.write("Book price is : " + myBook.price + "<br>");
      </script>
   </body>
</html>

出力

Book title is : Perl
Book author is : Mohtashim
Book price is : 100

「with」キーワード

*'with'* キーワードは、オブジェクトのプロパティまたはメソッドを参照するための一種の略記として使用されます。
*with* の引数として指定されたオブジェクトは、後続のブロックの期間中、デフォルトのオブジェクトになります。 オブジェクトのプロパティとメソッドは、オブジェクトに名前を付けずに使用できます。

構文

with objectの構文は次のとおりです-

with (object) {
   properties used without the object name and dot
}

次の例を試してください。

<html>
   <head>
   <title>User-defined objects</title>
      <script type = "text/javascript">
        //Define a function which will work as a method
         function addPrice(amount) {
            with(this) {
               price = amount;
            }
         }
         function book(title, author) {
            this.title = title;
            this.author = author;
            this.price = 0;
            this.addPrice = addPrice; //Assign that method as property.
         }
      </script>
   </head>

   <body>
      <script type = "text/javascript">
         var myBook = new book("Perl", "Mohtashim");
         myBook.addPrice(100);

         document.write("Book title is : " + myBook.title + "<br>");
         document.write("Book author is : " + myBook.author + "<br>");
         document.write("Book price is : " + myBook.price + "<br>");
      </script>
   </body>
</html>

出力

Book title is : Perl
Book author is : Mohtashim
Book price is : 100

JavaScriptネイティブオブジェクト

JavaScriptには、組み込みオブジェクトまたはネイティブオブジェクトがいくつかあります。 これらのオブジェクトはプログラムのどこからでもアクセス可能であり、どのオペレーティングシステムで実行されているブラウザでも同じように機能します。

すべての重要なJavaScriptネイティブオブジェクトのリストを次に示します-

  • リンク:/javascript/javascript_number_object [JavaScript数値オブジェクト]
  • リンク:/javascript/javascript_boolean_object [JavaScriptブールオブジェクト]
  • リンク:/javascript/javascript_strings_object [JavaScript文字列オブジェクト]
  • リンク:/javascript/javascript_arrays_object [JavaScript配列オブジェクト]
  • リンク:/javascript/javascript_date_object [JavaScript日付オブジェクト]
  • リンク:/javascript/javascript_math_object [JavaScript Math Object]
  • リンク:/javascript/javascript_regexp_object [JavaScript RegExpオブジェクト]