2012年3月26日月曜日

開発環境

独習JavaScript 高橋 和也 (著), 竹添 直樹 (著), 里見 知宏 (著) の第7章(オブジェクト指向プログラミング)7.5(クラスの継承)練習問題7.5.3を解いてみる。

その他参考書籍

3.

コード(TextWrangler)

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_id + 1;
    IdentifiedPerson.max_id++;
  } else {
    this.id = id;
    if(IdentifiedPerson.max_id < id){
      IdentifiedPerson.max_id = id;  
    }
  }
  Person.apply(this,[age,name,gender]);
}
IdentifiedPerson.prototype = new Person(null,'name');
IdentifiedPerson.prototype.constructor = IdentifiedPerson;
delete IdentifiedPerson.prototype.age;
delete IdentifiedPerson.prototype.gender;
IdentifiedPerson.max_id = 0;
var p1 = new IdentifiedPerson(10,'javascript','male');
var p2 = new IdentifiedPerson(20,'perl','female');
var p3 = new IdentifiedPerson(30,'python',null,10);
var p4 = new IdentifiedPerson(null,'ruby');
var array = [p1,p2,p3,p4];
var result = "";
for(var i = 0 ; i < array.length ; i++){
  result += "id: " + array[i].id + "<br />" +
            "name: " + array[i].name + "<br />" +
            "age: " + array[i].age + "<br />" +
            "gender: " + array[i].gender + "<br /><br />";
}
$('#pre0').html(result);






						

0 コメント:

コメントを投稿