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, apply və bind 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-ithisArg-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ə
thiskontekstinə 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.