JavaScriptda ob'ektning kontekstini qanday o'zgartirish mumkin?
sobes.tech AI
AIdan javob
JavaScript-da obyekting kontekstini (this) o'zgartirishning bir nechta asosiy usullari mavjud:
-
call(): Funksiyani belgilangan kontekst va argumentlar bilan, alohida-alohida uzatib bajaradi.// call() bilan misol const obj = { value: 42 }; function showValue() { console.log(this.value); } showValue.call(obj); // 42 ni chiqaradi -
apply(): Funksiyani belgilangan kontekst va argumentlarni massiv yoki pseudo-massiv shaklida uzatib bajaradi.// apply() bilan misol const obj = { value: 100 }; function add(a, b) { console.log(this.value + a + b); } add.apply(obj, [5, 10]); // 115 ni chiqaradi -
bind(): Belgilangan ob'ektga bog'langan yangi funksiyani qaytaradi. Asl funksiyani darhol chaqirmaydi.// bind() bilan misol const obj = { value: 200 }; function greet() { console.log("Salom " + this.value); } const boundGreet = greet.bind(obj); boundGreet(); // "Salom 200" ni chiqaradi -
Arrow funksiyalar (
=>): O'ziningthiskontekstiga ega emas. Ular aniqlangan lingvistik muhitdan meros oladi.// arrow funksiyasi bilan misol const obj = { value: "obyekt", printValue: function() { const arrowFunc = () => { console.log("Arrow funksiyadan: " + this.value); // this, obj'ga ishora qiladi } arrowFunc(); } }; obj.printValue(); // "Arrow funksiyadan: obyekt" ni chiqaradi -
Obyekt metod sifatida chaqirish: Funksiya obyekt metod sifatida chaqirilganda (
obj.method()),thiskonteksti obyektga (obj) bo'ladi.// metod sifatida chaqirish misoli const obj = { value: "obyekt metodi", show: function() { console.log(this.value); } }; obj.show(); // "obyekt metodi" ni chiqaradi -
Konstruktordan (
new) kontekstni aniq uzatish:newoperatori yordamida yangi ob'ekt nusxasi yaratilganda, konstruktor ichidagithiskonteksti yaratilayotgan nusxaga ishora qiladi.// konstruktor bilan misol function MyObject(value) { this.value = value; // this, yangi nusxaga ishora qiladi } const instance = new MyObject("konstruktor"); console.log(instance.value); // "konstruktor" ni chiqaradi
Ushbu usullar funksiyada this kalit so'zining nima ga ishora qilayotganini boshqarish imkonini beradi, bu JavaScript-da ob'ektlar va metodlar bilan to'g'ri ishlash uchun juda muhimdir.