Sobes.tech
Middle

JavaScript-də call, apply və bind metodları nədir?

sobes.tech Süni İntellekt

AI-dan cavab

call, apply və bind JavaScript-də mövcud olan bütün funksiyalar üçün əlçatandır. Onlar funksiyanın icra kontekstini (dəyər this) idarə etmək üçün istifadə olunur.

  • call: Bir funksiyanı müəyyən edilmiş this dəyəri və ayrılmış arqumentlərlə çağırır.
    // call istifadə nümunəsi
    function greet() {
      return "Salam, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Nəticə: Salam, Ivan!
    
  • apply: Bir funksiyanı müəyyən edilmiş this dəyəri və arqumentləri array və ya pseudo-array şəklində ötürməklə çağırır.
    // apply istifadə nümunəsi
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Nəticə: 18
    
  • bind: Yeni funksiya yaradır və bu funksiya çağırıldıqda müəyyən edilmiş this dəyərinə malik olur. Orijinal funksiya dərhal çağırılmır.
    // bind istifadə nümunəsi
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Nəticə: undefined (this qlobal obyektə işarə edir)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Nəticə: 42 (this module-ə bağlanıb)
    

Əsas fərqlər:

Metod arqumentlərin ötürülməsi funksiya çağırışı geri dönüş dəyəri
call Ayrı-ayrı (vergül ilə) Dərhal Funksiyanın nəticəsi
apply Array və ya pseudo-array şəklində Dərhal Funksiyanın nəticəsi
bind Ayrı-ayrı (vergül ilə) Dərhal deyil this ilə bağlı yeni funksiya