はじめに
JavaScript入門講座の第八弾として、JavaScript オブジェクトを初心者向けに解説、追加、削除、コンストラクタ、new演算子などついて紹介します。
この記事を読むと次の疑問について知ることができます。
- オブジェクトとは?
- オブジェクトのプロパティとは?
- オブジェクト内のデータの参照
- プロパティの追加
- プロパティの削除
- オブジェクトのメソッドとは?
- メソッドの参照
- コンストラクタとnew演算子とは?
- for in 文によるオブジェクト内の全要素の参照はどうするの?
JavaScript入門講座(7)では、JavaScriptの関数の書き方、定義、関数名、呼び出し、引数、戻り値、関数の中に関数について解説してきました。
ここでは、JavaScript オブジェクトを初心者向けに解説、追加、削除、コンストラクタ、new演算子などについて深堀していきます。
オブジェクトとは?
オブジェクトとは、JavaScriptで扱えるデータ型の一つで、複数の変数と値のセットを持ったプロパティと関数のようなメソッド(正確には関数とメソッドは異なる部分がある)を持つことができます。
一般的なオブジェクトの書き方は、次のように表現できます。
それでは、オブジェクトの構成要素を紐解いていきましょう。
オブジェクトのプロパティ
プロパティーには、変数と値をセットにしたデータセットを複数持つことができます。
以下の例を挙げます。
// オブジェクトの宣言 let obj = { // プロパティの定義 name : "鈴木", age : 58, "zip-code" : "100-0000" }
オブジェクト内のデータの参照
オブジェクト内のデータを参照するには2つの方法があります。
それでは、実際に先に宣言したオブジェクトobj内のデータを参照してみましょう。
console.log(obj.name); console.log(obj["name"]);
プロパティの追加
先に宣言したオブジェクトobjに異なるプロパティを追加することができます。
それでは、実際にプロパティを追加してみましょう。
obj.birthPlace = "東京都"; console.log(obj.birthPlace);
プロパティの削除
先に宣言したオブジェクト obj の必要のないプロパティを削除することができます。
それでは、実際にプロパティを削除してみましょう。
console.log(obj["zip-code"]); delete obj["zip-code"]; console.log(obj["zip-code"]);
オブジェクトのメソッド
それではここで、簡単なオブジェクトのメソッドを定義してみましょう。
先に宣言したオブジェクトobjにメソッドを追加します。
// オブジェクトの宣言
let obj = {
// プロパティの定義
name : "鈴木",
age : 58,
"zip-code" : "100-0000",
// メソッドの定義(追加)
aiSaTu : function () {
console.log( "こんにちは!" );
}
}
メソッドの参照
メソッドを呼び出して参照するには、次のようにします。
console.log(obj.aiSaTu()); console.log(obj);
コンストラクタとnew演算子
コンストラクタとは、new演算子で呼び出された関数をコンストラクタと呼びます。
それでは、new演算子とはどのようなのもなのでしょうか?
あるプログラムの対象(オブジェクト)があり、プログラムAとプログラムBの両方から読み書きなどを行おうとすると、お互いに干渉して動作が正常に動かなくなります。
そこで、オブジェクトのコピーをプログラムAとプログラムBの両方に作成し、そのコピー(インスタンスと呼ぶ)を通してそれぞれがアクセスするようにすれば干渉が起きません。
new演算子は、コピーを作成するための役割を持っています。
ここで具体的な例を挙げて見てみましょう。
// 関数の作成(コンストラクタ)
function NinGen ( name){
this.name = name;
// 挨拶メソッド
this.aiSaTu1 = function () {
console.log("こんにちは!わたしの名前は" + this.name +"です。");
}
}
// new演算子でNinGenのオブジェクトを作成(インスタンス)
let obj1 = new NinGen("鈴木");
let obj2 = new NinGen("山田");
// 挨拶メソッドの実行
obj1.aiSaTu1();
obj2.aiSaTu1();
for in 文によるオブジェクト内の全要素の参照
for in 文を利用すると、配列でも説明したと同様にオブジェクト内の全要素にアクセスすることができます。
for (let index in obj){ console.log(obj[index]); }
おわりに
如何だったでしょうか?
オブジェクトとは?、オブジェクトのプロパティとは?、オブジェクト内のデータの参照、プロパティの追加、プロパティの削除、オブジェクトのメソッドとは?、メソッドの参照、コンストラクタとnew演算子とは?、for in 文によるオブジェクト内の全要素の参照はどうするの?などについて紹介してきました。
この記事があなたにとって少しでもお役に立てればこれほど嬉しいことはありません。
以上です。
コメント