Sobes.tech
Junior — Middle

JavaScript-də call, apply və bind metodlarının nə olduğunu və onların funksiyanın çağırış kontekstini necə idarə etdiyini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

JavaScript-də call, applybind metodları, funksiya çağırılarkən konteksti (this) idarə etmək üçün istifadə olunur:

  • call(thisArg, arg1, arg2, ...) — funksiyanı dərhal çağırır, this-i thisArg-a təyin edir və arqumentləri ayrı-ayrılıqda ötürür.

  • apply(thisArg, [argsArray])call-a bənzəyir, lakin arqumentlər massiv kimi ötürülür.

  • bind(thisArg, arg1, arg2, ...) — funksiyanı dərhal çağırmır, əvəzində this kontekstinə və istəyə bağlı olaraq əvvəlcədən təyin olunmuş arqumentlərlə yeni funksiya qaytarır.

Misal:

function greet(greeting, punctuation) {
  console.log(greeting + ', ' + this.name + punctuation);
}

const person = { name: 'Иван' };

greet.call(person, 'Привет', '!'); // Привет, Иван!

greet.apply(person, ['Здравствуйте', '...']); // Здравствуйте, Иван...

const greetIvan = greet.bind(person, 'Привет');
greetIvan('!!!'); // Привет, Иван!!!

Bu metodlar vasitəsilə, funksiyanın içində this-in hansı obyektə istinad etdiyini açıq şəkildə təyin etmək mümkündür.