リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

15-2.Javascriptの関数、オブジェクト、配列②Javascriptのオブジェクト

やりまーーーす。
今日はJavascriptのオブジェクトです。
オブジェクトは変数を1ランク上げたものです。変数には1度に1つの値しか含まれませんが、オブジェクトには複数の値や関数までm含めることができます。オブジェクトはデータと、そのデータ操作に必要な関数をまとめてグループ化します。

taro-ris.hatenablog.com



1-1. クラスの定義


オブジェクトを使用するスクリプトを作成するときには、データと、クラスと呼ばれるコードの合成体を設定する必要があります。
クラスをペースにした新しいオブジェクトはそのクラスのインスタンスと呼ばれます。またオブジェクトに関連づけられたデータはプロパティと呼ばれ、オブジェクトが使用する関数はメソッドと呼ばれます。

例として、ユーザーに関する詳細を保持するUserという名前のクラスを宣言する方法を見てみます。クラスを作成するには、そのクラス名と同じ名前の関数を記述します。
この関数は引数をとることができます。
クラス名と同じ名前の関数はコンストラクタと呼ばれます。


function User(forename, username, password)
{
this.forename = forename
this.username = username
this.password = password

this.showUser = function()
{
document.write("Forename: " + this.forename + "
")
document.write("Username: " + this.username + "
")
document.write("Password: " + this.password + "
")
}
}


1-2. オブジェクトの作成


Userクラスのインスタンスを作成するには、次のステートメントを使用します。


details = new User("Wolfgang","w.a.mozart","composer")

これを、、、次のように空のオブジェクトを作成し、あとからプロパティの値を設定することもできます。


details = new User()
details.forename = "Wolfgang"
details.forename = "w.a.mozart"
details.forename = "composer"

1-3. オブジェクトへのアクセス


オブジェクトにアクセスするには、そのプロパティを次のように使用します

name = details,forename()

1-4. prototypeキーワード


prototypeキーワードはメモリの使用量を大幅に抑えます。
Userクラスの場合そのインスタンスはどれも3つのプロパティと1つのメソッドを持っているので、このオブジェクトがメモリ内に1000個あったとすると、ahowUserメソッドが1000回複製されています。
しかしこnメソッドはどのインスタンスでもまったく同じものなので、新しいオブジェクトに対し、メソッドのコピーを作成するのではなく、メソッドの同一インスタンスを参照するように指定することができます。

function User(forename, username, password)
{
this.forename = forename
this.username = username
this.password = password

User.prototype.showUser = function()
{
document.write("Forename: " + this.forename + "
")
document.write("Username: " + this.username + "
")
document.write("Password: " + this.password + "
")
}
}

すごい駆け足感満載ですがいじょー