Sobes.tech
Junior

`Function.prototype.bind` funksiyası nə edir və nə üçün lazımdır?

sobes.tech Süni İntellekt

AI-dan cavab

Function.prototype.bind yeni bir funksiyanı yaradır və çağırıldığında, ona sərt şəkildə təyin olunmuş kontekst (this) və istəyə bağlı olaraq, yeni funksiyaya çağırıldığında verilən arqumentlərdən əvvəl gələn əvvəlcədən təyin olunmuş arqumentlər ilə çağırılır.

Bu, aşağıdakı üçün faydalıdır:

  • metodların callback və ya hadisə idarəediciləri kimi ötürülərkən kontekstin saxlanması.
  • funksiyaların qismən tətbiqi (currying).
// Kontekstin saxlanması nümunəsi

const user = {
  name: 'Alice',
  greet: function() {
    console.log(`Salam, ${this.name}!`);
  }
};

const greetUser = user.greet;
greetUser(); // Salam, undefined! (kontekst itirilib)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Salam, Alice! (kontekst saxlanılıb)
// Qismən tətbiq nümunəsi

function multiply(a, b) {
  return a * b;
}

const multiplyByTwo = multiply.bind(null, 2); // null kontekst üçün, çünki lazım deyil

console.log(multiplyByTwo(5)); // 10