クラスを作成
クラスを作ってみる bookmark
では実際にJavaScriptでクラスを作ってみましょう。
今回は、Personというクラスを作ってみます。
function Person(name) { this.name = name; } Person.prototype.kick = function () { document.write('蹴りじゃ!'); } var hiroshi = new Person('hiroshi'); hiroshi.kick();
実行すると、「蹴りじゃ!」が画面に出力されます。
JavaScriptではこのように、function で、関数を定義するようにクラスを作成します。そして、this.name のように、this.~ の形で内部変数を自由に定義することが出来ます。
内部変数のことを、オブジェクト指向では、メンバ変数とかプロパティのように呼びます。以降、プロパティと呼ぶことにします。
次に、Person.prototype.kick = function() として、関数を定義していますが、これをPersonクラスから使える関数で、オブジェクト指向で、メンバ関数とか、メソッドのように呼ばれます。
オブジェクト指向では、Person という概念の中に、変数(プロパティ)とか関数(メソッド)を閉じ込めることが出来ます。閉じ込めることで、他で同じ関数名が定義されるなどして重複されてしまうことを無くし、全体的にもスッキリします。
定義することなんてないよ、と思う方もいると思いますが、複数人数でプログラムを作った場合どうでしょう?
実際、結構重複してしまいます。
なぜオブジェクト指向? bookmark
クラスによって複数のものを1くくりにすることで概念的にもまとめることができ、全体的に分かりやすいプログラムが作れるようになります。例えば、Windowsのエクスプローラーで1つのフォルダにファイルが1000個ある状態よりも、10個のフォルダにそれぞれファイルが分類されている方が全体が分かりやすいことと似ています。
逆に言うと、1つのフォルダに3個や4個しかファイルがない場合は分類しない方が効率的とも言えるので、規模が小さい場合はオブジェクト指向でもメリットを感じることが出来ないかもしれませんね。
オブジェクト指向は素晴らしいと説明してきましたが、JavaScriptの基本機能では、オブジェクト指向の全てのメリットを享受することは出来ません。
次のページからは、JavaScriptにオブジェクト指向の機能を強化するprototype.jsについて紹介していきます。
次のページ: prototype.jsでオブジェクト指向 (JavaScriptでオブジェクト指向)