Junior
'this' açar sözü nədir?
sobes.tech Süni İntellekt
AI-dan cavab
JavaScript-də this açar sözüdür və cari kodun icra olunduğu kontekstdə obyektə istinad edir. Onun dəyəri funksiyanın necə çağırılmasından asılıdır.
this-in təyin olunmasının əsas yolları:
- Qlobal kontekst: Funksiya xaricində,
thisqlobal obyektə (windowbrauzerdə,globalNode.js-də) istinad edir. - Normal funksiya çağırışı:
strict mode-da (sərt rejim),thisdə qlobal obyektə istinad edir (və yaundefined, əgər funksiya obyektin metodu kimi çağırılırsa və bu obyektnullvə yaundefined-dir). Sərt rejimdə,thisundefined-ə bərabərdir. - Obyekt metodu: Əgər funksiya obyektin metodu kimi çağırılırsa (yəni, nöqtə operatoru
.vasitəsilə),thismetodu sahibi olan obyektə istinad edir. - Konstruktor:
newoperatoru istifadə olunanda,thisyeni yaradılan obyekt nümunəsinə istinad edir. call(),apply(),bind()metodları: Bu metodlar funksiyanı çağırarkənthis-in dəyərini açıq şəkildə təyin etməyə imkan verir.bind()yeni funksiya qaytarır vəthis-i bağlayır,call()vəapply()isə funksiyanı göstərilənthisilə çağırır.- Ox funksiyaları: Ox funksiyaları öz
this-ə malik deyil.thisox funksiyasında leksik olaraq onun tərif olunduğu ətraf mühitdən miras qalır.
Misallar:
// Qlobal kontekst
console.log(this === window); // true (brauzer üçün)
// Normal funksiya çağırışı
function myFunction() {
console.log(this);
}
myFunction(); // window (sərt rejimdə deyil)
// Obyekt metodu
const myObject = {
myMethod: function() {
console.log(this);
}
};
myObject.myMethod(); // myObject
// Konstruktor
function MyConstructor() {
this.value = 10;
console.log(this);
}
const instance = new MyConstructor(); // nümunə obyekti
// call(), apply(), bind()
function greet(name) {
console.log("Salam, " + name + "! Mənim adım " + this.name);
}
const person = { name: "Alice" };
greet.call(person, "Bob"); // Salam, Bob! Mənim adım Alice
greet.apply(person, ["Bob"]); // Salam, Bob! Mənim adım Alice
const boundGreet = greet.bind(person);
boundGreet("Bob"); // Salam, Bob! Mənim adım Alice
// Ox funksiyası
const arrowFunction = () => {
console.log(this);
};
arrowFunction(); // window (əgər qlobal kontekstdə təyin olunubsa)
this-in müxtəlif kontekstlərdə necə müəyyən olunduğunu başa düşmək düzgün JavaScript kodu yazmaq üçün çox vacibdir.