Junior
JavaScriptте apply ыкмасы кандай иштейт?
sobes.tech AI
AIден жооп
apply ыкмасы функцияларда чакырылат жана бул функцияны белгилүү бир this мааниси жана массив (же массивке окшош объект) түрүндө берилген аргументтер менен чакырууга мүмкүндүк берет.
Негизги аспектилер:
thisорнотуу:applyыкмасынын биринчи аргументи чакырылуучу функциянын ичиндеthisачкыч сөзүнүн маанисин аныктайт. Эгерnullжеundefinedберилсе, анда эрежесиз режимдеthisглобалдык объектке (мисалы, браузердегиwindowже Node.jsдегиglobal) шилтеме кылат, ал эми катуу режимдеundefinedболот.- Аргументтерди берүү: Экинчи аргумент — бул массив (же массивке окшош объект), анын элементтери чакырылуучу функциянын аргументтери болуп саналат жана массивдеги тартипте берилет.
Синтаксис:
function.apply(thisArg, argsArray)
thisArg: функция чакырылгандаthisкатары колдонулуучу мааниси.argsArray: аргументтерди камтыган массив же массивке окшош объект.
call менен айырмачылыктары:
applyаргументтерди массив түрүндө кабыл алат.callаргументтерди жеке маанилер катары кабыл алат, жанаthisArgтен кийин берилет.
Колдонуу мисалы:
// Массивдеги эң чоң санды эсептөө функциясы
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Объекттин методуна башка контекст менен чакыруу
const person1 = { name: 'Alice' };
const person2 = { name: 'Bob' };
function greet(greeting, punctuation) {
console.log(`${greeting}, ${this.name}${punctuation}`);
}
greet.apply(person1, ['Hello', '!']); // Hello, Alice!
'greet.apply(person2, ['Hi', '?']); // Hi, Bob?
Колдонуу:
- Аргументтердин массивин функцияга берүү, ал жеке параметрлер катары күтөт.
- Функция чакырылганда
thisконтекстин өзгөртүү. - Ички методдор менен колдонуу, алар көптөгөн аргументтерди күтөт (мисалы,
Math.max,Math.min).