JavaScriptにおけるオブジェクトとは

2019年7月16日火曜日

プログラミング

JavaScriptにおけるオブジェクトとは

こんにちは、財前です。

この記事では、JavaScriptのオブジェクトについて書いていきます。

「オブジェクト」というと、ほとんどのプログラミング言語で登場する言葉ですが、JavaScriptで言うところのオブジェクトは、他の言語と少し違う意味合いを持っていたりします。

オブジェクト指向をざっくり理解した後に、JavaScriptにおけるオブジェクトの概要を見ていきましょう。


オブジェクト指向とは?(ざっくり)

オブジェクト指向とは?(ざっくり)

今時のプログラミング言語は、基本的に全てオブジェクト指向言語と考えて差し支えないでしょう。

オブジェクト思考とは、何度も同じようなプログラムを書くのを防ぐための仕組みです。


たとえばゲームを作るとき、

キャラクターA、キャラクターB、キャラクターC、

それぞれに対して、

ジャンプボタンが押された時の処理、
右ボタンが押された時の処理、
左ボタンが押された時の処理…

を、いちいち書いていくのは、
手間ですよね?


どのキャラクターもだいたい同じような動きをするのに、
キャラクターを新しく作成するたびに、
毎回一からプログラムを書かなければいけません。


それを防ぐために
「キャラクターとは」
というプログラムをあらかじめ書いておいて、
キャラクターに必要とされる機能を、
一箇所にまとめて書いておきます。

あとは、全てのキャラクターが、その「キャラクターとは」というプログラムを呼び出すようにするのです。


そうすることで、
何度も最初から同じようなキャラクターのプログラムを書くことを防げるのですね。

キャラクターに必要な基本機能は、一箇所にまとめて書いてありますから、そこを参照するだけです。


ここでいう
「キャラクター」というものが、
「オブジェクト」です。

こんな風にキャラクターなどの「もの」を定義してプログラミングしていくのが、
オブジェクト指向と呼ばれるプログラミングの手法です。


JavaScriptのオブジェクト

JavaScriptのオブジェクト

JavaScriptで「オブジェクト」と言うと、
他の言語とは少し意味合いが異なります。

JavaScriptのオブジェクトとは
そんな大層なものではなく、
他の言語で言うところの
「連想配列」
です。


連想配列は、プログラミング言語によって呼び方が異なるのですが、
JavaだとMap、C#やVBだとDictionary、RubyだとHashとか呼ばれているものです。

連想配列は、「キー」と「値」をセットでも持っておけるもので、
たとえば
  • リンゴ: 200円
  • みかん: 300円
  • キウィ: 500円
みたいな情報を保持したいときに、
フルーツ名を「キー」にして、
値段という「値」をプログラム上で保持したりできます。


キャラクターの例で言えば
{
  name: “ピカチョー”
  aButton: jump
  bButton: attack
}
みたいな感じです。

ここで言う、
「name」や「aButton」、「bButton」がキーで、
「ピカチョー」「jump」「attack」が、にあたるものです。


普通の?プログラミング言語では、
連想配列もオブジェクトの一種なのですが、
JavaScriptでは「オブジェクト = 連想配列」のような扱いです。


JavaScriptは、シンプルで柔軟な言語

JavaScriptは、シンプルで柔軟な言語

このように、JavaScriptではオブジェクトという言葉の指す意味合いが、他言語と少し異なる部分があるので、最初は少し混乱してしまうかもしれません。

JavaScriptにおけるオブジェクトとは単に、「キー」と「値」をセットで持っているもの
と考えて頂ければ良いと思います。

本記事で説明したように、JavaScriptにおけるオブジェクトはシンプルなものですが、
シンプルであるがゆえに、非常に柔軟にプログラミングを行うことができます。

class構文やprototypeと呼ばれる仕組みを使うことによって、
他の言語のオブジェクト指向に近い振る舞いを再現することも可能です。


WebにとってJavaScriptは欠かすことが出来ない言語ですから、是非とも興味を持って、
使いこなしていきたいものです。

最後まで読んで頂き、ありがとうございました!