JavaScript でクラス定義するときのメモ。
クラス定義の基本
JavaScript のクラス定義は function() を使って行う。
var MyClass = function(name) { /* ここにプロパティの初期化コードを書く */ this.name = name; } MyClass.prototype.myMethod = function() { /* prototype.メソッド名 の形でメソッドを定義する */ alert(this.name); } var obj = new MyClass("hamasyou"); obj.myMethod(); // => "hamasyou"
ネームスペースをつけてクラスを宣言する
いくつかやり方がありますが、一番素直なやり方で。
var com = {}; if (typeof(com.hamasyou) == "undefined") com.hamasyou = {}; (function() { var ns = com.hamasyou; ns.MyClass = function(name) { /* ここにプロパティの初期化コードを書く */ this.name = name; }; ns.MyClass.prototype.myMethod = function() { /* ここにメソッドの中身を書く */ alert(this.name); }; })(); var obj = new com.hamasyou.MyClass("hamasyou"); obj.myMethod(); // => "hamasyou"
ネームスペースあれこれ
javascript - ふつうのnamespace - 404 Blog Not Found
[JavaScript]undefine - Enjoy*Study
クラス定義もうひとつ
プロトタイプを上書きして、コンストラクタをプロトタイプに実装する方法。
JavaScript OOP におけるクラス定義方法 - IT戦記
var com = {}; if (typeof(com.hamasyou) == "undefined") com.hamasyou = {}; (function() { var ns = com.hamasyou; ns.MyClass = function() { this.initialize.apply(this, arguments); }; ns.MyClass.prototype = { initialize: function(name) { this.name = name; }, myMethod: function() { /* ここにメソッドの中身を書く */ alert(this.name); } }; })(); var obj = new com.hamasyou.MyClass("hamasyou"); obj.myMethod(); // => "hamasyou"