JQuery некоторые параметры, которые принимают функции - PullRequest
0 голосов
/ 05 мая 2020

есть пример, который я не мог понять в jQuery. Вот в этом коде:

  $("#test1").text(function(i, origText){
    return "Old text: " + origText + " New text: Hello world!
    (index: " + i + ")";
  });
});

встроенная функция .text () имеет 2 параметра: i, origText. Но вот моя проблема, разве они не неопределенные?

Как jQuery узнает, что origText - это исходный текст, а i - это индекс?

Ответы [ 2 ]

2 голосов
/ 05 мая 2020
В документации

jQuery объясняется, что означает здесь и здесь . Обычно он заполняется автоматически при вызове (событие запускается) и заполняет индекс элемента, для которого он запускается, и его текущее содержимое (текст).

Описание: Установите содержимое каждого элемента в наборе совпадающих элементов с указанным текстом.

Функция (Целочисленный индекс, текст строки) => String Функция, возвращающая текстовое содержимое для установки. Получает позицию индекса элемента в наборе и старое текстовое значение в качестве аргументов.

function (index, currentcontent) Необязательно. Задает функцию, которая возвращает новое текстовое содержимое для индекса выбранных элементов - Возвращает позицию индекса элемента в наборе currentcontent - Возвращает текущее содержимое выбранных элементов

0 голосов
/ 05 мая 2020

Функции в JavaScript могут быть переданы как аргументы. Это не то же самое на любом языке, но поскольку функции в основном являются объектами в JavaScript, они могут.

Вы тоже можете сделать это, как они сделали с jQuery. Создайте функцию, которая принимает функцию в качестве аргумента. Внутри функции вызовите функцию аргумента со своими собственными аргументами, как в примере ниже, два аргумента со строками в них.

Ваши другие функции, которые вызываются функции обратного вызова первая функция и ожидайте, что в качестве аргументов будут переданы два слова. И вы можете передавать разные функции обратного вызова в зависимости от того, что вы хотите делать с вводом, которое дает вам первая функция.

function exampleFunction(expectedFunction) {
  if (typeof expectedFunction === 'function') {
    expectedFunction('foo', 'bar');
  }
}

function showWords(firstWord, secondWord) {
  console.log(firstWord, secondWord);
}

function combineWordsWithHyphen(firstWord, secondWord) {
  console.log(`${firstWord}-${secondWord}`);
}

exampleFunction(showWords);
exampleFunction(combineWordsWithHyphen);
exampleFunction(function(firstWord, secondWord) {
  console.log(secondWord, firstWord);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...