Junior
JavaScriptda klassik funktsiya va chiziqli funktsiya o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Asosiy farq ular qanday ishlashiga bogʻliq this.
Anʼanaviy funksiya oʻz this ga ega boʻlib, u chaqirilgan kontekstga (qanday chaqirilganiga) bogʻliq boʻladi.
Ok funksiyasi oʻz this ga ega emas. U, tanlangan muhitdan, leksik ravishda, this meros oladi.
Boshqa farqlar:
argumentsobʼekti: Anʼanaviy funksiyalarargumentsobʼektiga kirish huquqiga ega, ok funksiyalar esa — yoʻq (lekin rest parametrlaridan foydalanish mumkin).- Konstruktorlar: Anʼanaviy funksiyalar
newoperatori bilan konstruktor sifatida ishlatilishi mumkin. Ok funksiyalari — mumkin emas. prototypexususiyati: Anʼanaviy funksiyalardaprototypexususiyati mavjud. Ok funksiyalarida — yoʻq.
this bilan ishlash misoli:
// Anʼanaviy funksiya misoli
const obj = {
name: 'Obyekt',
greet: function() {
console.log(this.name); // this, obj ga ishora qiladi
}
};
obj.greet(); // Chiqishi: Obyekt
const greetFunc = obj.greet;
greetFunc(); // Chiqishi: undefined (yoki Browserda Window) - this, kontekstni yoʻqotadi
// Ok funksiyasi misoli
const objArrow = {
name: 'Ok bilan obyekt',
greet: () => {
console.log(this.name); // this, tashqi kontekstni meros oladi (bu holatda global yoki Window)
}
};
objArrow.greet(); // Chiqishi: undefined (yoki brauzerda oynaning nomi, agar name global boʻlsa)
const greetArrowFunc = objArrow.greet;
greetArrowFunc(); // Chiqishi: undefined (yoki brauzerda oynaning nomi) - this, oʻzgarmaydi