Sobes.tech
Junior

რა აკეთებს `Function.prototype.bind` ფუნქცია და რა მიზნით არის საჭირო?

sobes.tech AI

პასუხი AI-სგან

Function.prototype.bind ქმნის ახალ ფუნქციას, რომელიც როდესაც იძახება, მას ექნება ფიქსირებული კონტექსტი (this) და, სურვილის შემთხვევაში, წინასწარ განსაზღვრული არგუმენტები, რომლებიც მოდიან ყველა არგუმენტზე, რომელიც გადაეცემა ახალ ფუნქციას გამოძახებისას.

ეს სასარგებლოა:

  • კონტექსტის შენარჩუნება მეთოდების გადაცემისას callback ან მოვალეობის დამუშავებლის სახით.
  • ფუნქციების ნაწილობრივ გამოყენება (currying).
// კონტექსტის შენარჩუნების მაგალითი

const user = {
  name: 'Alice',
  greet: function() {
    console.log(`გამარჯობა, ${this.name}!`);
  }
};

const greetUser = user.greet;
greetUser(); // გამარჯობა, undefined! (კონტექსტი დაკარგულია)

const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // გამარჯობა, Alice! (კონტექსტი შენარჩუნებულია)
// ნაწილობრივი გამოყენების მაგალითი

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

const multiplyByTwo = multiply.bind(null, 2); // null როგორც კონტექსტი, რადგან საჭირო არაა

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