roadmap.az

Menyu

JavaScript & DOMDərs 16 / 25

Obyekt metodları

Metod obyektin davranışıdır

Obyekt xassəsində saxlanan funksiya metoddur. Qısa metod sintaksisi ilə obyektin öz məlumatına this vasitəsilə müraciət edə bilərsən. this dəyəri adi funksiyada necə çağırıldığından asılıdır.

const user = {
  name: 'Aysel',
  age: 20,
  setAge(value) {
    if (!Number.isInteger(value) || value < 0) return false;
    this.age = value;
    return true;
  },
  getYearsBeforeRetirement(retirementAge) {
    return Math.max(0, retirementAge - this.age);
  }
};
user.setAge(21);
console.log(user.getYearsBeforeRetirement(65)); // 44
Nümunə

Çağırışı qorumaq

user.setAge(21) metodu user üzərindən çağırır. Metodu ayrıca dəyişənə çıxarıb update(21) kimi çağıranda həmin obyekt əlaqəsi itə bilər. Lazım olduqda wrapper funksiya və ya bind ilə əlaqəni saxla.

Oxlu funksiyanın öz this dəyəri yoxdur; obyektin özünə müraciət edən adi metodun yerinə düşünmədən oxlu funksiya yazma. Funksiya istinadı ilə çağırışını ayır: user.setAge funksiya, user.setAge(21) onun nəticəsidir. Metodun hansı məlumatı dəyişdirdiyini və hansı nəticəni qaytardığını ayrıca müəyyən et.

Əlavə qeydlər və mənbələr

Obyektin xassəsi olan funksiya metod adlanır. Obyekt üzərindən çağırılan adi metod this vasitəsilə həmin obyektə müraciət edə və onun xassələrini dəyişə bilər; çağırış forması this-in dəyərinə təsir edir.

Niyə vacibdir?

JavaScript istifadəçi hərəkətinə cavab verən və məlumatı emal edən səhifələr yaratmağa imkan verir.

Əvvəlki biliklər

Bu mövzuda

  • Metod elanı və çağırışı
  • this və obyektin xassələri
  • Parametr qəbul edən metodlar

Mövzuya baxış

Mənbələr

Məşqin idarəetməsi
Addım 1 / 3

Metodla hesabla

Yaşı dəyiş və pensiyaya qalan müddətin necə hesablandığını gör.

Hədəf: Yaşı 40 et.

Canlı nəticə

Giriş{"age":20}
Nəticə45
Mənbə kodu
getYearsBeforeRetirement(65)
// this.age = 20

Özün sına

Profil obyektinə setAge və getYearsBeforeRetirement metodları əlavə et. Pensiya yaşını parametr ver və mənfi yaşın qəbul edilməməsini təmin et.

Nəticəni necə yoxlayım?

Metodlar düzgün obyekt üzərində işləyir; yaş yenilənir və pensiyaya qalan il parametrə görə hesablanır.

Gözlənilən nəticə

  • Mənfi yaş rədd edilir və əvvəlki yaş saxlanır.
  • 30 yaş üçün 65 həddinə 35 il, 70 yaş üçün 0 il qalır.
false 20
true 35
0
Nümunə həllə bax

Əvvəl özün sına, sonra müqayisə et. Bu, mümkün həllərdən biridir.

Metod çağırışında this profil obyektini göstərir. Yaş və pensiya həddi yoxlanılır, qalan illər sıfırdan aşağı düşmür.

main.js

const profile = {
  age: 20,
  setAge(age) {
    if (!Number.isFinite(age) || age < 0) return false;
    this.age = age;
    return true;
  },
  getYearsBeforeRetirement(retirementAge) {
    if (!Number.isFinite(retirementAge) || retirementAge < 0) throw new RangeError('Etibarsız hədd');
    return Math.max(0, retirementAge - this.age);
  }
};
console.log(profile.setAge(-2), profile.age);
console.log(profile.setAge(30), profile.getYearsBeforeRetirement(65));
profile.setAge(70);
console.log(profile.getYearsBeforeRetirement(65));

Praktikanı bitirdin?Özün qiymətləndirirsən. İrəliləyiş bu brauzerdə saxlanılır.