JavaScript
Børre Stenseth
OOP > Arv >Eksempel2

Arv og klassestruktur

Hva

Her lager vi person som en brukbar klasse. Her skjer prototypingen når klassen konstrueres. Parametre til person-klasssen sendes som en liste.

Vi lager følgende Konstruksjon

_test2.js
// global list of persons
var pList=[];
function Person(navn,faar){
    this.navn=navn;
    this.faar=faar;
    this.getNavn=function(){return this.navn}
    this.getAlder=function(){
        return new Date().getFullYear()-this.faar
    }
}
function Student(navn,faar,linje){
    // implisitt prototyping
    // parameters as list
    Person.apply(this,[navn,faar]);
    this.linje=linje;
    this.getLinje=function(){return this.linje};
}
function Professor(navn,faar,fakultet){
    // implisitt prototyping
    // parameters as list
    Person.apply(this,[navn,faar]);
    this.fakultet=fakultet
    this.getFakultet=function(){return this.fakultet}
}
function displayList(dumpid){
    var dmp=document.getElementById(dumpid);
    S="";
    for(var ix=0;ix < pList.length;ix++){
        var p=pList[ix];
        S+=p.getNavn();
        if(p instanceof Student)
            S+=", studerer "+p.getLinje();
        if(p instanceof Professor)
            S+=", ansatt ved "+p.getFakultet();
        S+=",  alder: "+p.getAlder();
        S+="<br/>";
    }
    dmp.innerHTML=S;
}

Så lager vi en serie objekter.

pList.push(new Person("Jensen",2001));
pList.push(new Student("Pedersen",1985,"Informatikk"));
pList.push(new Student("Hansen",1990,"Matematikk"));
pList.push(new Professor("Berg",1970,"Avdeling for IT"));
pList.push(new Student("Holm",1990,"Økonomi"));
OOP > Arv >Eksempel2