Sobes.tech
Junior

JavaScriptте apply ыкмасы кандай иштейт?

sobes.tech AI

AIден жооп

apply ыкмасы функцияларда чакырылат жана бул функцияны белгилүү бир this мааниси жана массив (же массивке окшош объект) түрүндө берилген аргументтер менен чакырууга мүмкүндүк берет.

Негизги аспектилер:

  1. this орнотуу: apply ыкмасынын биринчи аргументи чакырылуучу функциянын ичинде this ачкыч сөзүнүн маанисин аныктайт. Эгер null же undefined берилсе, анда эрежесиз режимде this глобалдык объектке (мисалы, браузердеги window же Node.jsдеги global) шилтеме кылат, ал эми катуу режимде undefined болот.
  2. Аргументтерди берүү: Экинчи аргумент — бул массив (же массивке окшош объект), анын элементтери чакырылуучу функциянын аргументтери болуп саналат жана массивдеги тартипте берилет.

Синтаксис:

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).