jQuery метод .fireWith()
Определение и применение
jQuery метод .fireWith() объекта
Callbacks
вызывает все ранее добавленные функции обратного вызова с заданным контекстом и аргументами. Этот метод возвращает
объект обратного вызова к которому он присоединен (this).
jQuery синтаксис:
Синтаксис 1.7:
callbacks.fireWith(); // без аргумента
callbacks.fireWith( context );
callbacks.fireWith( context, arguments );context - Anything
arguments - ArrayLikeObject
Добавлен в версии jQuery
1.7Значения параметров
| Параметр | Описание |
|---|---|
| context | Ссылка на контекст, в котором должны быть запущены обратные вызовы в списке обратного вызова. |
| arguments |
Массив или массивоподобный объект аргументов, которые будут переданы в список обратного вызова. Если этот
параметр опущен или не определен, аргументы передаваться не будут. Исключение TypeError возникает
в том случае, если аргумент не соответствует массиву, или массивоподобному объекту.
|
Пример использования
Метод .fireWith() объекта Callbacks — пример 1
Нажмите . Измените JavaScript и запустите пример повторно. Используется jQuery 4.0.0.
index.html
<p>Результат выполнения выводится в консоль под примером.</p>
main.js
// возвращаем объект Callbacks и инициализируем переменную этим значением
let myCallbacks = $.Callbacks()
// создаем функцию и инициализируем переменную этим значением
const fn1 = function (val1, val2) {
console.log((this.a || a) + val1 + val2)
},
myObj = { a: 'my object ' },
a = 'my Window/this '
// добаляем функцию обратного вызова в список обратных вызовов объекта
myCallbacks.add(fn1)
// вызываем все ранее добавленные функции обратного вызова с заданным аргументом
myCallbacks.fireWith(this, ['hello ', 'world'])
// вывод в консоль:
// window/this hello world
// вызываем все ранее добавленные функции обратного вызова с заданным аргументом
myCallbacks.fireWith(myObj, ['hello ', 'world'])
// вывод в консоль:
// my object hello world
style.css
body {
margin: 16px;
font:
16px/1.5 system-ui,
sans-serif;
overflow-wrap: anywhere;
}
img,
input,
select,
textarea,
button {
max-width: 100%;
}
Нажмите , чтобы запустить пример.
В этом примере мы рассмотрели базовое использование функции
$.Callbacks(), которую мы вызвали без параметра и возвратили объект
Callbacks. После этого инициализировали три переменные, первая содержит функцию, вторая объект с одни
свойством и третья содержит строку.
С помощью метода
.add()
объекта
Callbacks
мы добавили функцию в список обратных вызовов объекта
Callbacks, и с помощью метода .fireWith() этого объекта мы вызываем все ранее добавленные функции обратного вызова с
заданным аргументом и определенным контекстом - в первом случае это объект window (this
ссылается на него), а во втором в контексте исполнения объекта myObj.
Обратите внимание, что мы использовали оператор || (логическое ИЛИ), это неободимо для того чтобы, если у объекта нет своего свойства "a", то поиск вёлся бы в глобальной области видимости.