Kamimura's blog
プログラミング(Python、Perl、C、Go、JavaScript)、数学、読書…
ほしい物リスト
2010年6月3日木曜日
プログラミング学習の記録 210 独習JavaScript (大型本)の第7章(オブジェクト指向プログラミング)の7.5(クラスの継承)の練習問題7.5
開発環境:
Mac OS X Snow Leopard (OS)
Firefox(ブラウザ)+Firebug(アドオン)
"独習JavaScript (大型本)"のp.239, 第7章(オブジェクト指向プログラミング)の7.5(クラスの継承)の練習問題7.5を解いてみる。
1.
スーパークラスのプロパティを継承する。
スーパークラスのメソッドを継承する。
インスタンスのデータ型判定に必要なプロパティを調整する。
2.
function Rectangle(height, width) { this.height = height; this.width = width; } function ColoredRectangle(height, width, color) { this.color = color; Rectangle.apply(this, [height, width]); } ColoredRectangle.prototype = new Rectangle(); ColoredRectangle.prototype.constructor = ColoredRectangle;
3.
function Person(age, name, gender) { if (!name) { throw new Error("error : プロパティnameが未指定です"); } this.age = age; this.name = name; this.gender = gender; } function IdentifiedPerson(age, name, gender, id) { if (!id) { this.id = ++IdentifiedPerson.max; } else { this.id = id; if (id > IdentifiedPerson.max) { IdentifiedPerson.max = id; } } Person.apply(this, [age, name, gender]); } IdentifiedPerson(null,"Kamimura"); IdentifiedPerson.prototype.constructor=IdentifiedPerson; delete IdentifiedPerson.prototype.age; delete IdentifiedPerson.prototype.name; IdentifiedPerson.max = 0; var person = new IdentifiedPerson(10, "Kamimura",null,10); var person1 = new IdentifiedPerson(null, "Kamimura1"); var person2 = new IdentifiedPerson(null, "Kamimura2", null, 100); alert("Kamimura ID: " + person.id); alert("Kamimura1 ID: " + person1.id); alert("Kamimura2 ID: " + person2.id);
0 コメント:
コメントを投稿
次の投稿
前の投稿
ホーム
コメントの投稿(Atom)
0 コメント:
コメントを投稿