jQuery метод .fireWith()
jQuery объект CallbacksОпределение и применение
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 возникает в том случае, если аргумент не соответствует массиву, или массивоподобному объекту. |
Пример использования
// возвращаем объект 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
В этом примере мы рассмотрели базовое использование функции $.Callbacks(), которую мы вызвали без параметра и возвратили объект Callbacks. После этого инициализировали три переменные, первая содержит функцию, вторая объект с одни свойством и третья содержит строку.
С помощью метода .add() объекта Callbacks мы добавили функцию в список обратных вызовов объекта Callbacks, и с помощью метода .fireWith() этого объекта мы вызываем все ранее добавленные функции обратного вызова с заданным аргументом и определенным контекстом - в первом случае это объект window (this ссылается на него), а во втором в контексте исполнения объекта myObj.
Обратите внимание, что мы использовали оператор || (логическое ИЛИ), это неободимо для того чтобы, если у объекта нет своего свойства "a", то поиск вёлся бы в глобальной области видимости.
jQuery объект Callbacks