Objekti i nasledjivanje

by Daman Daman

JavaScript

var praviCoveka = function(ime, prezime){
  var covek = {
    ime: ime,
    prezime: prezime,
    pozdrav: function(){
      return "Zdravo! Moje ime je " + this.ime;
    }
  };
    return covek;
};

var mira = praviCoveka("Mira", "Maric");
var pera = praviCoveka("Pera", "Peric");
console.log(pera.pozdrav());
console.log(mira.pozdrav());


// parazitsko nasledjivanje
var praviRadnika = function(ime, prezime, posao) {
    var radnik = praviCoveka(ime, prezime);
    radnik.posao = posao;
    return radnik;
}

var alija = praviRadnika("Alija", "Sirotanovic", "udarnik");
console.log(alija.pozdrav());


// prototipno nasledjivanje
var covek = {
    ime: "Daman",
    prezime: "Daman",
    pozdrav: function(){
      return "Zdravo! Moje ime je " + this.ime;
    }    
};

var radnik = Object.create(covek);
console.log(radnik.pozdrav());
console.log("Prototip radnika je: ", radnik.__proto__);
console.log("radnik.__proto__ === covek", radnik.__proto__ === covek);
console.log(radnik.__proto__.ime);


// klasno nasledjivanje
var Osoba = function(ime, prezime){
    this.ime = ime;
    this.prezime = prezime;
}

var Strucnjak = function(ime, prezime, zanimanje){
    Osoba.call(this, ime, prezime);
    this.zanimanje = zanimanje;
}

var mile = new Strucnjak("Mile", "Dragic", "hirurg");
console.log(mile.ime, mile.zanimanje);