JavaScript-də obyektin kontekstini necə dəyişmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
JavaScript-də obyektin kontekstini (this) dəyişdirmək üçün əsasən bir neçə üsul mövcuddur:
-
call(): Bir funksiyanı müəyyən bir kontekst və arqumentlərlə, ayrı-ayrılıqda ötürülməklə icra edir.// call() ilə nümunə const obj = { value: 42 }; function showValue() { console.log(this.value); } showValue.call(obj); // 42 göstərəcək -
apply(): Bir funksiyanı müəyyən bir kontekst və arqumentləri massiv və ya pseudo-massiv şəklində ötürməklə icra edir.// apply() ilə nümunə const obj = { value: 100 }; function add(a, b) { console.log(this.value + a + b); } add.apply(obj, [5, 10]); // 115 göstərəcək -
bind(): Belirli bir obyektə bağlanmış yeni bir funksiya qaytarır. Orijinal funksiya dərhal icra edilmir.// bind() ilə nümunə const obj = { value: 200 }; function greet() { console.log("Salam " + this.value); } const boundGreet = greet.bind(obj); boundGreet(); // "Salam 200" göstərəcək -
Ox funksiyaları (
=>): Özthiskontekstinə malik deyil. Onlar təyin olunduqları leksikal mühitdən miras alırlar.// ox funksiyası ilə nümunə const obj = { value: "obyekt", printValue: function() { const arrowFunc = () => { console.log("Ox funksiyasından: " + this.value); // this, obj-ə istinad edir } arrowFunc(); } }; obj.printValue(); // "Ox funksiyasından: obyekt" göstərəcək -
Obyektin metod kimi çağırılması: Bir funksiya obyektin metodu kimi çağırıldıqda (
obj.method()),thiskonteksti obyektə (obj) çevrilir.// metod kimi çağırış nümunəsi const obj = { value: "obyekt metodu", show: function() { console.log(this.value); } }; obj.show(); // "obyekt metodu" göstərəcək -
Açıq şəkildə kontekstin ötürülməsi
newilə:newoperatoru ilə yeni obyekt nümunəsi yaradıldıqda, konstruktor daxilindəthisyaradılan nümunəyə istinad edir.// konstruktor nümunəsi function MyObject(value) { this.value = value; // this, yeni nümunəyə istinad edir } const instance = new MyObject("konstruktor"); console.log(instance.value); // "konstruktor" göstərəcək
Bu üsullar funksiyanın içində this-in nəyi göstərdiyini idarə etməyə imkan verir və JavaScript-də obyektlər və metodlarla düzgün işləmək üçün çox vacibdir.