オブジェクトの基本 -『JavaScript』
JavaScriptのオブジェクトは、名前をキーにアクセスできる配列、連想配列です。もう少し掘り下げると、単純に名前がついた入れ物の集合ではなく、オブジェクト自体が1つのモノであり、中に含まれる要素はそのオブジェクトの特性や動作を表すために存在しています。
プログラム上で扱う対象をオブジェクトとして捉えて、 オブジェクトを中心にコードを組み立てていく手法をオブジェクト指向と呼びます。
オブジェクトはプロパティとメソッド
オブジェクトはプロパティとメソッドで構成されます。プロパティはオブジェクトの状態や特性を表している情報のことです。メソッドはオブジェクトを操作するための処理です。
このことからオブジェクトはデータを操作するための機能を持った入れ物といえます。
オブジェクトを利用する 「new」
オブジェクト指向の考え方では、例外を除いて、デフォルトで用意されているオブジェクトを直接利用することを禁止します。オブジェクトは自分自身の中でデータを保持するという性質を持っているからです。オリジナルのオブジェクトには変更を加えずに、オブジェクトのコピーを操作することでデータの競合などを防ぎます。
オブジェクトの複製を作ることを「インスタンス化」、インスタンスによって出来上がった複製を「インスタンス」と呼びます。インスタンス化はオブジェクトを扱うために自分専用の領域を確保することです。
オブジェクトをインスタンス化するにはnew
演算子を使います。
new演算子
var variableName = new ObjectName();
オブジェクトにはオブジェクトを初期化するために、オブジェクトと同名のメソッドが用意されていて、これを「コンストラクタ」と呼びます。オブジェクト名はコンストラクタ名です。
インスタンスは変数に格納して、その変数をオブジェクトとして扱います。インスタンスが格納された変数は、「インスタンス変数」「オブジェクト変数」と呼びます。
インスタンス変数からプロパティ/メソッドを呼び出すには、ドット演算子を使います。
var variableName = new objectName();
variableName.propName;
variableName.methodName();
静的プロパティ 静的メソッド
プロパティやメソッドによっては、例外的にインスタンスを生成しないで利用するものもあります。このプロパティ/メソッドを静的プロパティ/静的メソッドまたはクラスプロパティ/クラスメソッドと呼びます。
ObjectName.propName;
OblectName.methodName();
組み込みオブジェクト
JavaScriptのオブジェクトで基本的なものが、JavaScriptに標準で組み込まれている、組み込みオブジェクト(ビルトインオブジェクト)です。組み込みオブジェクトはJavascriptが実行できるすべての環境で利用でき、特別な宣言や定義なしで利用できます。
- Global
- JavaScriptの基本機能にアクセスするための手段
- Object
- すべてのオブジェクトの雛形になる機能
- Array
- 配列を操作するための手段
- Map/WeakMap 《ES2105》
- 連想配列を操作するための手段
- Set/SetMap 《ES2105》
- 一意な値の集合を管理するための手段
- String
- 文字列を操作するための手段
- Boolean
- 真偽値を操作するための手段
- Number
- 数値を操作するための手段
- Function
- 関数を操作するための手段
- Symbol 《ES2015》
- シンボルを操作するための手段
- Math
- 数値演算を実行するための手段
- Date
- 日付を操作するための手段
- RegExp
- 正規表現に関わる機能
- Error/XxxxxError
- エラー情報を管理
- Proxy 《ES2015》
- オブジェクトの挙動をカスタマイズする手段
- Promise 《ES2015》
- 非同期処理を実装するための手段
Stringオブジェクトのlengthプロパティ
let myStr = 'mystring'
console.log(myStr.length); // 8
String
オブジェクトのlength
プロパティを利用すると文字列の長さを求めることができます。
組み込みオブジェクトはnew演算子は使わない
組み込みオブジェクトでもnew
演算子を使ってオブジェクトを生成できますが、冗長になったり予期しないエラーの原因になるので組み込みオブジェクトのインスタンス化は原則避けるようにします。
ラッパーオブジェクト
JavaScriptの標準的なデータ型を扱う組み込みオブジェクトの中でも、基本形の文字列 / 数値 / 論理値を扱うためのオブジェクトのことをラッパーオブジェクトと呼びます。ラッパーオブジェクトは基本形のオブジェクトを包んでオブジェクトとしての機能を追加するためのオブジェクトたちです。
おわります。