クラス(オブジェクト)の作り方
オブジェクト生成
var obj = { name : "taro",
say : function() { alert("HELLO!") }
};
空のクラス定義
var Person = function() {};
コンストラクタ付きのクラス定義
var Person = function(name) {
this.name = name;
this.say = function() { alert(this.name); }
};
インスタンス生成
var person = new Person("taro");
person.say();
プロトタイプによるメソッド追加
Person.prototype = {
say2: function() {
alert("2: " + this.name);
};
person.say2();
継承
var Person = function(name) { this.name = name; }; // 親クラス
Person.prototype = { say: function() { alert(this.name) }; };
var Man = function(name) { this.name = "Mr." + name; }; // 子クラス
Man.prototype = Person.prototype; // 継承
var m = new Man("taro");
m.say();
Prototype.jsを使って継承
var Woman = Class.create(); // クラス定義
Object.extend(Woman.prototype, Person.prototype); // 継承
Object.extend(Woman.prototype,{ // メソッドのオーバーライド
initialize: function(name) {
this.name = "Miss." + name;
}
});
var w = new Woman("hanako");
w.say();