Takip Edin

JAVASCRIPT

Uygulama: Constructor & Prototype

Uygulama: Constructor ve Prototype

Dışarıdan isim ve maaş bilgilerini alan bir Çalışan constructor‘ı tanımlayınız.

Yıl içinde o ana kadar alınan toplam maaş ve vergi tutarını hesaplayan bir fonksiyon oluşturun.

Vergi dilimleri şu şekilde olsun:

  • 15 000 TL’ye kadar %15 vergi,
  • 25 0000 TL’ye kadar %20 vergi,
  • 25 000 TL’den sonra %23 vergi
function Employee(name,salary){
    if(!(this instanceof Employee)){
        return new Employee(name,salary);
    }
    this.name = name;
    this.salary = salary;        
}

Employee.prototype.calculateSalary = function() {
    var month = new Date().getMonth() + 1;
    var tax = 0;
    var total = this.salary*month;

    if(total <= 15000){
        tax = total*0.15;
    }
    else if(total >15000 && total <= 25000){
        tax = total*0.2;
    }
    else{
        tax = total*0.23;
    }

    return{
        tax : tax,
        paid : total - tax
    }
}

var emp1 = Employee('Burak',3500); 
var emp1_salary = emp1.calculateSalary();
console.log(`${emp1.name} adlı personel, ${emp1_salary.tax} TL vergi kesintisi ile toplamda ${emp1_salary.paid} TL maaş almıştır.`);

var emp2 = new Employee('Ayhan',6000);
var emp2_salary = emp2.calculateSalary();
console.log(`${emp2.name} adlı personel, ${emp2_salary.tax} TL vergi kesintisi ile toplamda ${emp2_salary.paid} TL maaş almıştır.`);

Aşağıdaki kod sayesinde Employee ‘den türetilen bir nesne bir Employee türü değilse bu durumda new anahtar sözcüğünü kendimiz oluşturabiliriz.

function Employee(name,salary){
    if(!(this instanceof Employee)){
        return new Employee(name,salary);
    }

Örneğin, eğer üstteki fonksiyonu yazmasaydık

var emp1 = Employee('Burak',3500); 

yukarıdaki kodu var emp1 = new Employee(‘Burak’,3500); şeklinde yazmadığımız için konsol, hata döndürecekti.

Devamını oku

Popüler

error: Content is protected !!