Middle+
runOnce yechimida apply usulining nima uchun kerak bo'lishi mumkin?
sobes.tech AI
AIdan javob
JavaScriptda apply usuli, belgilangan kontekst (this) va argumentlar bilan funksiyani chaqirish imkonini beradi. runOnce funksiyasining faqat bir marta bajarilishi uchun, apply original argumentlar va chaqirish kontekstini o'ralgan funktsiyaga o'tkazishda foydalidir.
Masalan, agar biz runOnce funksiyasidan, birinchi chaqirilishda, asl funksiyani ayni argumentlar va kontekst bilan chaqiradigan, keyingi chaqirilishda esa chaqirmaydigan funksiyani qaytarishni istasak, apply buni universal tarzda qilish imkonini beradi:
function runOnce(fn) {
let called = false;
let result;
return function(...args) {
if (!called) {
called = true;
result = fn.apply(this, args); // kontekst va argumentlar bilan
}
return result;
};
}
Shu tarzda, apply funksiyaning har qanday argumentlar soni va to'g'ri chaqirish kontekstida to'g'ri ishlashini ta'minlaydi.