Takip Edin

JAVASCRIPT

Javascript’te Kalıtım: Uygulama

Javascript te Kalıtım Uygulaması

Uygulamada Person adlı bir constructor oluştulmuştur. Sonrasında Person ‘ı temel alan Student ve Teacher constructor’ları oluşturulmuştur. Daha sonra Teacher ‘dan bir Headmaster constructor’ı oluşturulmaktadır.

// Person Constructor
function Person(name) {
    this.name = name;
}

Person.prototype.Introduce = function() {
    console.log('Hello, my name is ' + this.name);
}

// Teacher Constructor
function Teacher(name,branch){
    Person.call(this,name); 
    this.branch = branch;
}


Teacher.prototype = Object.create(Person.prototype);
Teacher.prototype.constructor = Teacher;
Teacher.prototype.teach = function() {
    console.log('I teach ' + this.branch);
}

// Student Constructor
function Student(name,number) {
    Person.call(this,name);
    this.number = number;
}

Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;

Student.prototype.study = function() {
    console.log('My student number is ' + this.number);
}

// Headmaster Constructor
function Headmaster(name,branch){
    Teacher.call(this,name,branch);
}

Headmaster.prototype = Object.create(Teacher.prototype);
Headmaster.prototype.constructor = Headmaster;

Headmaster.prototype.shareTask = function() {
    console.log('I have done the necessary task sharing.');
}

let p1 = new Person('Adnan');
p1.Introduce();

let t1 = new Teacher('Atahan','physics');
t1.Introduce(); 
t1.teach();

let s1 = new Student('Sevinç','551');
s1.Introduce();
s1.study();

let h1 = new Headmaster('Ömer','Chemistry');
h1.Introduce();
h1.teach();
h1.shareTask();
Person.call(this,name); 

Burada Teacher ‘dan üretilecek olan nesne, this ile temsil edilmektedir. Person nesnesi üzerinden call( ) metodu kullanılarak this ‘in içerisi, Person constructor’ının içerisine gönderilen name parametresi ile doldurulacaktır.

Teacher.prototype = Object.create(Person.prototype);

Yukarıdaki kodla Person ‘ın prototype’ı, Teacher ‘ın prototype’ına eşitlenmiş olacak. Bu sayede Teacher üzerinden Introduce( ) metoduna ulaşılabilir.

t1.Introduce(); 

Teacher nesnesi içerisinde Introduce( ) metodu olmamasına rağmen Person ‘dan inherit ettiğimiz için Person nesnesinde bulunan Introduce( ) metodu, t1 nesnesi üzerinden çağrılabilir hale geldi.

Devamını oku

Popüler

error: Content is protected !!