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ş
thisdə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ş
thisdə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ş
thisdə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 |